Menggunakan Event Grid untuk pemberitahuan perubahan data App Configuration

Dalam artikel ini, Anda mempelajari cara menggunakan langganan peristiwa Azure App Configuration untuk mengirim peristiwa modifikasi key-value ke titik akhir web. Pengguna Azure App Configuration dapat berlangganan untuk peristiwa yang dihasilkan setiap kali key-value dimodifikasi. Peristiwa ini dapat memicu webhook, Azure Functions, Antrian Azure Storage, atau penanganan aktivitas lainnya yang didukung oleh Azure Event Grid. Biasanya, Anda mengirim peristiwa ke titik akhir yang memproses data peristiwa dan mengambil tindakan. Namun, untuk menyederhanakan artikel ini, Anda mengirim peristiwa ke aplikasi web yang mengumpulkan dan menampilkan pesan.

Prasyarat

Menggunakan Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa pun di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di sudut kanan atas blok kode. Memilih Coba tidak secara otomatis menyalin kode ke Cloud Shell. Cuplikan layar yang menunjukkan contoh Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Cuplikan layar yang menunjukkan cara meluncurkan Cloud Shell di jendela baru.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Cuplikan layar yang menunjukkan tombol Cloud Shell di portal Azure

Untuk menjalankan kode dalam artikel ini di Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode untuk menyalin kode.

  3. Tempelkan kode ke sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Enter untuk menjalankan kode.

Jika Anda memilih untuk memasang dan menggunakan CLI secara lokal, artikel ini mengharuskan Anda menjalankan versi terbaru Azure CLI (2.0.70 atau yang lebih baru). Jalankan az --version untuk mencari versinya. Jika Anda perlu memasang atau meningkatkan versi, lihat Memasang Azure CLI.

Jika Anda tidak menggunakan Cloud Shell, Anda harus masuk terlebih dulu menggunakan az login.

Membuat grup sumber daya

Topik Event Grid merupakan sumber daya Azure, dan harus ditempatkan di grup sumber daya Azure. Grup sumber daya Azure adalah koleksi logis tempat sumber daya Azure disebarkan dan dikelola.

Buat grup sumber daya dengan perintah az group create.

Contoh berikut ini membuat grup sumber daya bernama <resource_group_name> di lokasi westus. Ganti <resource_group_name> dengan nama unik untuk grup sumber daya Anda.

az group create --name <resource_group_name> --location westus

Membuat penyimpanan App Configuration

Ganti <appconfig_name> dengan nama unik untuk akun penyimpanan Anda, dan <resource_group_name> dengan grup sumber daya yang Anda buat sebelumnya. Nama harus unik karena digunakan sebagai nama DNS.

az appconfig create \
  --name <appconfig_name> \
  --location westus \
  --resource-group <resource_group_name> \
  --sku free

Membuat titik akhir pesan

Sebelum berlangganan topik, mari kita buat titik akhir untuk pesan peristiwa tersebut. Biasanya, titik akhir mengambil tindakan berdasarkan data peristiwa. Untuk menyederhanakan mulai cepat ini, sebarkan aplikasi web bawaan yang menampilkan pesan peristiwa. Solusi yang disebarkan mencakup paket App Service, aplikasi web App Service, dan kode sumber dari GitHub.

Ganti <your-site-name> dengan nama unik untuk aplikasi web Anda. Nama aplikasi web harus unik karena merupakan bagian dari entri DNS.

$sitename=<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=$sitename hostingPlanName=viewerhost

Diperlukan beberapa menit untuk menyelesaikan penyebaran. Setelah penyebaran berhasil, lihat aplikasi web Anda untuk memastikannya berjalan. Pada browser web, navigasi ke: https://<your-site-name>.azurewebsites.net

Anda akan melihat situs tanpa pesan 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:

az provider show --namespace Microsoft.EventGrid --query "registrationState"

Saat registrationState telah Registered, Anda siap untuk melanjutkan.

Berlangganan ke penyimpanan App Configuration Anda

Anda berlangganan topik untuk memberi tahu Event Grid peristiwa apa yang ingin Anda lacak dan tempat untuk mengirim peristiwa tersebut. Contoh berikut ini berlangganan App Configuration yang Anda buat, dan meneruskan URL dari aplikasi web Anda sebagai titik akhir untuk pemberitahuan peristiwa. Ganti <event_subscription_name> dengan nama untuk langganan peristiwa Anda. Untuk <resource_group_name> dan <appconfig_name>, gunakan nilai yang Anda buat sebelumnya.

Titik akhir untuk aplikasi web Anda harus menyertakan akhiran /api/updates/.

appconfigId=$(az appconfig show --name <appconfig_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $appconfigId \
  --name <event_subscription_name> \
  --endpoint $endpoint

Lihat kembali aplikasi web Anda, dan perhatikan bahwa peristiwa validasi langganan telah dikirim ke aplikasi web. Pilih ikon mata untuk memperluas data peristiwa. Event Grid mengirimkan peristiwa validasi sehingga titik akhir dapat memverifikasi bahwa Event Grid ingin menerima data peristiwa. Aplikasi web menyertakan kode untuk memvalidasi langganan.

Menampilkan peristiwa langganan

Memicu peristiwa App Configuration

Sekarang, mari kita picu peristiwa untuk melihat cara Event Grid mendistribusikan pesan ke titik akhir Anda. Buat key-value menggunakan <appconfig_name> dari yang sebelumnya.

az appconfig kv set --name <appconfig_name> --key Foo --value Bar --yes

Anda telah memicu peristiwanya, dan Event Grid telah mengirim pesan ke titik akhir yang Anda konfigurasi saat berlangganan. Lihat aplikasi web Anda untuk melihat kejadian yang baru saja Anda kirim.

[{
  "id": "deb8e00d-8c64-4b6e-9cab-282259c7674f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/eventDemoGroup/providers/microsoft.appconfiguration/configurationstores/{appconfig-name}",
  "subject": "https://{appconfig-name}.azconfig.io/kv/Foo",
  "data": {
    "key": "Foo",
    "etag": "a1LIDdNEIV6wCnfv3xaip7fMXD3",
    "syncToken":"zAJw6V16=Njo1IzMzMjE3MzA=;sn=3321730"
  },
  "eventType": "Microsoft.AppConfiguration.KeyValueModified",
  "eventTime": "2019-05-31T18:59:54Z",
  "dataVersion": "1",
  "metadataVersion": "1"
}]

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan App Configuration dan langganan peristiwa ini, jangan bersihkan sumber daya yang dibuat dalam artikel ini. Jika Anda tidak berencana untuk melanjutkan, gunakan perintah berikut untuk menghapus sumber daya yang Anda buat dalam artikel ini.

Ganti <resource_group_name> dengan grup sumber daya yang Anda buat di atas.

az group delete --name <resource_group_name>

Langkah berikutnya

Setelah Anda mengetahui cara membuat topik dan langganan peristiwa, pelajari selengkapnya tentang peristiwa key-value dan Event Grid apa yang dapat membantu Anda: