Tutorial: Membuat rute peristiwa kustom ke Azure Relay Hybrid Connections dengan Azure CLI dan Event Grid

Azure Event Grid merupakan layanan kejadian untuk cloud. Azure Relay Hybrid Connections merupakan salah satu pengelola kejadian yang didukung. Gunakan koneksi hibrid sebagai pengelola kejadian saat Anda perlu memproses peristiwa dari aplikasi yang tidak memiliki titik akhir publik. Aplikasi ini mungkin berada dalam jaringan perusahaan Anda. Dalam artikel ini, gunakan Azure CLI untuk membuat topik kustom, berlangganan topik kustom, dan memicu kejadian untuk menampilkan hasilnya. Kirim peristiwa ke sambungan hibrid.

Prasyarat

Anda dapat menggunakan Azure Cloud Shell atau Azure CLI lokal.

  • Artikel ini memerlukan Azure CLI versi 2.0.56 atau yang lebih baru. Jika ingin menggunakan Azure Cloud Shell, versi terbaru sudah terpasang.

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 gridResourceGroup di lokasi westus2.

az group create --name gridResourceGroup --location westus2

Membuat topik kustom

Topik pusat aktivitas menyediakan titik akhir yang ditentukan pengguna tempat Anda memposting peristiwa. Contoh berikut membuat topik kustom di grup sumber daya Anda. Ganti <topic_name> dengan nama unik untuk topik kustom Anda. Nama topik Event Grid harus unik karena diwakili oleh entri DNS.

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

Berlangganan topik kustom

Berlangganan topik Event Grid untuk memberi tahu Azure Event Grid tentang peristiwa mana yang ingin Anda lacak. Contoh berikut berlangganan topik kustom yang Anda buat, dan meneruskan ID sumber daya pusat aktivitas untuk titik akhir. ID koneksi hibrid dalam format:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>

Skrip berikut ini mendapatkan ID sumber daya dari mengganti namespace. Membangun ID untuk koneksi hibrid, dan membuat langganan topik Event Grid. Skrip mengatur tipe titik akhir hybridconnection ke dan menggunakan ID koneksi hibrid untuk titik akhir.

relayname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>

relayid=$(az resource show --name $relayname --resource-group $relayrg --resource-type Microsoft.Relay/namespaces --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name <event_subscription_name> \
  --endpoint-type hybridconnection \
  --endpoint $hybridid \
  --expiration-date "<yyyy-mm-dd>"

Perhatikan bahwa tanggal kedaluwarsa ditetapkan untuk langganan.

Membuat aplikasi untuk memproses peristiwa

Anda memerlukan aplikasi yang dapat mengambil peristiwa dari koneksi hibrid. Sampel Microsoft Azure Event Grid Hybrid Connection Consumer untuk C# melakukan operasi tersebut. Anda sudah menyelesaikan langkah-langkah prasyarat.

  1. Pastikan Anda memiliki Visual Studio 2019 atau yang terbaru.

  2. Kloning repositori ke mesin lokal Anda.

  3. Muat proyek HybridConnectionConsumer di Visual Studio.

  4. Di Program.cs, ganti dan <relayConnectionString><hybridConnectionName> dengan string koneksi relai dan nama koneksi hibrid yang Anda buat.

  5. Kompilasi dan jalankan aplikasi dari Visual Studio.

Mengirim kejadian ke topik Anda

Mari kita picu kejadian untuk melihat cara Azure Event Grid mendistribusikan pesan ke titik akhir Anda. Artikel ini memperlihatkan cara menggunakan Azure CLI untuk memicu kejadian tersebut. Atau, Anda dapat menggunakan aplikasi penerbit Azure Event Grid.

Pertama, mari kita dapatkan URL dan kunci untuk topik kustom. Sekali lagi, gunakan nama topik kustom Anda untuk <topic_name>.

endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)

Untuk menyederhanakan artikel ini, gunakan contoh data peristiwa untuk dikirim ke topik kustom. Biasanya, aplikasi atau layanan Azure akan mengirimkan data peristiwa. CURL adalah utilitas yang mengirim permintaan HTTP. Dalam artikel ini, gunakan CURL untuk mengirim kejadian ke topik kustom.

event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

Aplikasi pendengar Anda harus menerima pesan kejadian.

Menghapus sumber daya

Jika Anda berencana untuk terus bekerja dengan peristiwa ini, jangan bersihkan sumber daya yang dibuat di artikel ini. Jika tidak, gunakan perintah berikut untuk menghapus sumber daya yang Anda buat di artikel ini.

az group delete --name gridResourceGroup

Langkah berikutnya

Setelah Anda mengetahui cara membuat topik dan langganan peristiwa, pelajari lebih lanjut tentang apa yang Event Grid dapat bantu Anda lakukan: