Quickstart: Kirim acara dari registri kontainer pribadi ke Event Grid
Azure Event Grid adalah layanan perutean acara terkelola sepenuhnya yang menyediakan konsumsi acara seragam menggunakan model publish-subscribe. Dalam panduan memulai ini, Anda menggunakan Azure CLI untuk membuat registri kontainer, berlangganan peristiwa registri, lalu menyebarkan aplikasi web sampel untuk menerima peristiwa. Terakhir, Anda memicu peristiwa push
dan delete
citra kontainer dan melihat muatan peristiwa dalam aplikasi sampel.
Setelah Anda menyelesaikan langkah-langkah dalam artikel ini, peristiwa yang dikirim dari registri kontainer Anda ke Event Grid muncul di aplikasi web contoh:
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- Perintah Azure CLI dalam artikel ini diformat untuk shell Bash. Jika Anda menggunakan shell yang berbeda seperti PowerShell atau Command Prompt, Anda mungkin perlu menyesuaikan karakter kelanjutan baris atau baris penugasan variabel yang sesuai. Artikel ini menggunakan variabel untuk meminimalkan jumlah pengeditan perintah yang diperlukan.
Buat grup sumber daya
Grup sumber daya Azure adalah kontainer logis tempat Anda menyebarkan dan mengelola sumber daya Azure Anda. Perintah az group create berikut membuat grup sumber daya bernama myResourceGroup di wilayah eastus. Jika Anda ingin menggunakan nama yang berbeda untuk grup sumber daya Anda, setel RESOURCE_GROUP_NAME
ke nilai yang berbeda.
RESOURCE_GROUP_NAME=myResourceGroup
az group create --name $RESOURCE_GROUP_NAME --location eastus
Membuat registri kontainer
Selanjutnya, gunakan registri kontainer ke grup sumber daya dengan perintah berikut. Sebelum Anda menjalankan perintah az acr create, setel ACR_NAME
ke nama untuk registri Anda. Nama harus unik dalam Azure, dan dibatasi hingga 5-50 karakter alfanumerik.
ACR_NAME=<acrName>
az acr create --resource-group $RESOURCE_GROUP_NAME --name $ACR_NAME --sku Basic
Setelah registri dibuat, Azure CLI mengembalikan output yang serupa dengan berikut ini:
{
"adminUserEnabled": false,
"creationDate": "2018-08-16T20:02:46.569509+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry",
"location": "eastus",
"loginServer": "myregistry.azurecr.io",
"name": "myregistry",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
Membuat titik akhir peristiwa
Di bagian ini, Anda menggunakan templat Resource Manager yang terletak di repositori GitHub untuk menyebarkan aplikasi web sampel bawaan ke Azure App Service. Kemudian, Anda berlangganan peristiwa Event Grid registri Anda dan menentukan aplikasi ini sebagai titik akhir tempat peristiwa tersebut dikirim.
Untuk menyebarkan aplikasi sampel, atur SITE_NAME
ke nama unik untuk aplikasi web Anda, dan jalankan perintah berikut. Nama situs harus unik dalam Azure karena membentuk sebagian dari nama domain yang sepenuhnya memenuhi syarat (FQDN) dari aplikasi web. Di bagian selanjutnya, Anda menavigasi ke FQDN aplikasi di browser web untuk melihat peristiwa registri Anda.
SITE_NAME=<your-site-name>
az deployment group create \
--resource-group $RESOURCE_GROUP_NAME \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
--parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan
Setelah penyebaran berhasil (mungkin perlu beberapa menit), buka browser dan navigasikan ke aplikasi web Anda untuk memastikannya berjalan:
http://<your-site-name>.azurewebsites.net
Anda akan melihat contoh aplikasi yang dirender tanpa pesan peristiwa yang ditampilkan:
Aktifkan penyedia sumber daya Event Grid
Jika sebelumnya Anda belum menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid. Jalankan perintah berikut untuk mendaftarkan penyedia:
az provider register --namespace Microsoft.EventGrid
Mungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Saat
registrationState
adalahRegistered
, Anda siap untuk melanjutkan.
Berlangganan acara registri
Di Event Grid, Anda berlangganan topik untuk menentukan peristiwa yang ingin Anda lacak, dan tempat untuk mengirim peristiwa. Perintah berikut az eventgrid event-subscription create
berlangganan registri kontainer yang Anda buat, dan menentukan URL aplikasi web Anda sebagai titik akhir tempatnya harus mengirim peristiwa. Variabel lingkungan yang Anda isi di bagian sebelumnya digunakan kembali di sini, jadi tidak diperlukan pengeditan.
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)
APP_ENDPOINT=https://$SITE_NAME.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--name event-sub-acr \
--source-resource-id $ACR_REGISTRY_ID \
--endpoint $APP_ENDPOINT
Ketika proses berlangganan selesai, Anda akan melihat output yang mirip dengan berikut:
{
"destination": {
"endpointBaseUrl": "https://eventgridviewer.azurewebsites.net/api/updates",
"endpointType": "WebHook",
"endpointUrl": null
},
"filter": {
"includedEventTypes": [
"All"
],
"isSubjectCaseSensitive": null,
"subjectBeginsWith": "",
"subjectEndsWith": ""
},
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry/providers/Microsoft.EventGrid/eventSubscriptions/event-sub-acr",
"labels": null,
"name": "event-sub-acr",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"topic": "/subscriptions/<Subscription ID>/resourceGroups/myresourcegroup/providers/microsoft.containerregistry/registries/myregistry",
"type": "Microsoft.EventGrid/eventSubscriptions"
}
Picu peristiwa registri
Sekarang setelah aplikasi sampel aktif dan berjalan dan Anda telah berlangganan registri Anda dengan Event Grid, Anda siap untuk membuat beberapa peristiwa. Di bagian ini, Anda menggunakan Tugas ACR untuk membangun dan mendorong citra kontainer ke registri Anda. Tugas ACR adalah fitur Azure Container Registry yang memungkinkan Anda membuat citra kontainer di cloud, tanpa perlu menginstal Docker Engine di mesin lokal Anda.
Bangun dan dorong citra
Jalankan perintah Azure CLI berikut untuk membuat kontainer citra dari konten repositori GitHub. Secara default, Tugas ACR mendorong citra yang berhasil secara otomatis dibuat ke registri Anda, yang menghasilkan peristiwa ImagePushed
.
Catatan
Dockerfile yang digunakan dalam contoh berikut bergantung pada gambar kontainer dasar publik dari Docker Hub. Untuk meningkatkan keandalan saat menggunakan konten publik, impor, dan mengelola gambar dalam registri kontainer Azure pribadi, serta memperbarui Dockerfile Anda untuk menggunakan gambar dasar yang dikelola secara pribadi. Pelajari lebih lanjut cara menangani citra publik.
az acr build --registry $ACR_NAME --image myimage:v1 -f Dockerfile https://github.com/Azure-Samples/acr-build-helloworld-node.git#main
Anda akan melihat output yang mirip dengan yang berikut ini saat Tugas ACR membangun lalu mendorong gambar Anda. Output sampel berikut telah dipotong untuk singkatnya.
Sending build context to ACR...
Queued a build with build ID: aa2
Waiting for build agent...
2018/08/16 22:19:38 Using acb_vol_27a2afa6-27dc-4ae4-9e52-6d6c8b7455b2 as the home volume
2018/08/16 22:19:38 Setting up Docker configuration...
2018/08/16 22:19:39 Successfully set up Docker configuration
2018/08/16 22:19:39 Logging in to registry: myregistry.azurecr.io
2018/08/16 22:19:55 Successfully logged in
Sending build context to Docker daemon 94.72kB
Step 1/5 : FROM node:9-alpine
...
Untuk memverifikasi bahwa gambar bawaan ada di registri Anda, jalankan perintah berikut untuk melihat tag di myimage
repositori:
az acr repository show-tags --name $ACR_NAME --repository myimage
Tag "v1" dari citra yang Anda buat akan muncul di output, mirip dengan berikut ini:
[
"v1"
]
Hapus citra
Sekarang, buat peristiwa ImageDeleted
dengan menghapus citra menggunakan perintah az acr repository delete:
az acr repository delete --name $ACR_NAME --image myimage:v1
Anda akan melihat output yang mirip dengan berikut ini, meminta konfirmasi untuk menghapus manifes dan citra terkait:
This operation will delete the manifest 'sha256:f15fa9d0a69081ba93eee308b0e475a54fac9c682196721e294b2bc20ab23a1b' and all the following images: 'myimage:v1'.
Are you sure you want to continue? (y/n):
Lihat peristiwa registri
Anda sekarang telah memasukkan citra ke registri Anda dan kemudian menghapusnya. Navigasikan ke aplikasi web Event Grid Viewer, dan Anda akan melihat peristiwa ImageDeleted
dan ImagePushed
. Anda mungkin juga melihat acara validasi langganan yang dibuat dengan menjalankan perintah di bagian Berlangganan peristiwa registri.
Cuplikan layar berikut menunjukkan aplikasi contoh dengan tiga peristiwa, dan peristiwa ImageDeleted
diperluas untuk menampilkan detailnya.
Selamat! Jika Anda melihat peristiwa ImagePushed
dan ImageDeleted
, registri Anda mengirim peristiwa ke Event Grid, dan Event Grid meneruskan peristiwa tersebut ke titik akhir aplikasi web Anda.
Membersihkan sumber daya
Setelah Anda selesai dengan sumber daya yang Anda buat di panduan mulai cepat ini, Anda dapat menghapus semuanya dengan perintah Azure CLI berikut. Saat Anda menghapus grup sumber daya, semua sumber daya yang ada di dalamnya akan dihapus secara permanen.
PERINGATAN: Pengoperasian ini tidak dapat dibatalkan. Pastikan Anda tidak lagi membutuhkan sumber daya apa pun dalam grup sebelum menjalankan perintah.
az group delete --name $RESOURCE_GROUP_NAME
Skema peristiwa Event Grid
Anda dapat menemukan referensi skema pesan peristiwa Azure Container Registry di dokumentasi Event Grid:
Skema peristiwa Azure Event Grid untuk Container Registry
Langkah berikutnya
Dalam panduan memulai ini, Anda menerapkan registri kontainer, membuat citra dengan Tugas ACR, menghapusnya, dan menggunakan peristiwa registri Anda dari Event Grid dengan aplikasi sampel. Selanjutnya, lanjutkan ke tutorial Tugas ACR untuk mempelajari lebih lanjut tentang membuat citra kontainer di cloud, termasuk build otomatis berdasarkan pembaruan citra dasar: