Bagikan melalui


Mengelola topik dan menerbitkan peristiwa menggunakan domain peristiwa

Artikel ini menunjukkan cara:

  • Membuat domain Azure Event Grid
  • Berlangganan topik Event Grid
  • Membuat daftar kunci
  • Menerbitkan peristiwa ke domain

Untuk mempelajari tentang domain peristiwa, lihat Memahami domain peristiwa untuk mengelola topik Azure Event Grid.

Membuat sebuah Domain Peristiwa

Untuk mengelola sekumpulan topik besar, buat domain peristiwa.

az eventgrid domain create \
  -g <my-resource-group> \
  --name <my-domain-name> \
  -l <location>

Keberhasilan pembuatan mengembalikan nilai berikut:

{
  "endpoint": "https://<my-domain-name>.westus2-1.eventgrid.azure.net/api/events",
  "id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>",
  "inputSchema": "EventGridSchema",
  "inputSchemaMapping": null,
  "location": "westus2",
  "name": "<my-domain-name>",
  "provisioningState": "Succeeded",
  "resourceGroup": "<my-resource-group>",
  "tags": null,
  "type": "Microsoft.EventGrid/domains"
}

Perhatikan endpoint dan id sebagaimana merek diperlukan untuk mengelola domain dan menerbitkan peristiwa.

Mengelola akses ke topik

Mengelola akses ke topik dilakukan melalui penetapan peran. Penetapan peran menggunakan kontrol akses berbasis peran Azure untuk membatasi operasi pada sumber daya Azure kepada pengguna yang berwenang pada cakupan tertentu.

Azure Event Grid memiliki dua peran bawaan, yang man dapat Anda gunakan untuk menetapkan akses pengguna tertentu pada berbagai topik dalam domain. Peran ini adalah, EventGrid EventSubscription Contributor (Preview)memungkinkan pembuatan dan penghapusan langganan, dan EventGrid EventSubscription Reader (Preview), hanya memungkinkan untuk pencantuman langganan peristiwa.

Perintah Azure CLI berikut membatasi alice@contoso.comuntuk membuat dan menghapus langganan peristiwa hanya dengan topik demotopic1:

az role assignment create \
  --assignee alice@contoso.com \
  --role "EventGrid EventSubscription Contributor (Preview)" \
  --scope /subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1

Untuk informasi selengkapnya tentang mengelola akses untuk operasi Azure Event Grid, lihat autentikasi dan keamanan Azure Event Grid.

Membuat topik dan langganan

Layanan Azure Event Grid secara otomatis membuat dan mengelola topik yang sesuai di domain berdasarkan panggilan untuk membuat langganan peristiwa untuk topik domain. Tidak ada langkah terpisah untuk membuat topik di domain. Demikian pula, ketika langganan peristiwa terakhir untuk sebuah topik dihapus, topik domain juga ikut terhapus.

Berlangganan untuk topik di domain sama dengan berlangganan untuk sumber daya Azure lainnya. Untuk ID sumber daya, tentukan ID domain peristiwa yang dikembalikan saat membuat domain sebelumnya. Untuk menentukan topik yang Anda ingin berlangganan, tambahkan /topics/<my-topic> ke akhir ID sumber daya. Untuk membuat langganan peristiwa cakupan domain yang menerima semua peristiwa di domain, tentukan ID domain peristiwa tanpa menentukan topik apa pun.

Biasanya, pengguna yang Anda berikan akses di bagian sebelumnya akan membuat langganan. Untuk menyederhanakan artikel ini, Anda membuat langganan.

az eventgrid event-subscription create \
  --name <event-subscription> \
  --source-resource-id "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1" \
  --endpoint https://contoso.azurewebsites.net/api/updates

Jika Anda memerlukan titik akhir pengujian untuk berlangganan peristiwa, Anda selalu dapat menyebarkan aplikasi web bawaan yang menampilkan peristiwa masuk. Anda dapat mengirim peristiwa Anda ke situs web pengujian Anda di https://<your-site-name>.azurewebsites.net/api/updates.

Tombol untuk menyebarkan templat Resource Manager ke Azure.

Izin yang diatur untuk topik disimpan di ID Microsoft Entra dan harus dihapus secara eksplisit. Menghapus langganan peristiwa tidak mencabut akses pengguna untuk membuat langganan peristiwa jika mereka telah menulis akses pada topik.

Menerbitkan peristiwa ke domain Event Grid

Menerbitkan peristiwa ke domain sama dengan menerbitkan ke topik kustom. Namun, alih-alih menerbitkan ke topik kustom, Anda menerbitkan semua peristiwa ke titik akhir domain. Dalam data peristiwa JSON, Anda menentukan topik yang Anda ingin peristiwa yang akan dikunjungi. Array berikut dari peristiwa akan menghasilkan peristiwa dengan "id": "1111"topikdemotopic1 sementara peristiwa dengan "id": "2222"akan dikirim ke topik demotopic2:

[{
  "topic": "demotopic1",
  "id": "1111",
  "eventType": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "eventTime": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
  "dataVersion": "1.0"
},
{
  "topic": "demotopic2",
  "id": "2222",
  "eventType": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "eventTime": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
  "dataVersion": "1.0"
}]

Untuk mendapatkan titik akhir domain dengan Azure CLI, gunakan

az eventgrid domain show \
  -g <my-resource-group> \
  -n <my-domain>

Untuk mendapatkan kunci untuk domain, gunakan:

az eventgrid domain key list \
  -g <my-resource-group> \
  -n <my-domain>

Lalu gunakan metode favorit anda untuk membuat HTTP POST untuk menerbitkan kejadian anda ke domain Event Grid.

Catatan

Untuk sampel yang menggunakan SDK bahasa pemrograman untuk menerbitkan peristiwa ke domain Event Grid, gunakan tautan berikut:

Mencari Daftar topik atau langganan

Untuk mencari dan mengelola sejumlah besar topik atau langganan, API Event Grid mendukung pencantuman dan penomoran halaman.

Menggunakan CLI

Misalnya, perintah berikut mencantumkan semua topik dengan nama yang berisi mytopic.

az eventgrid topic list --odata-query "contains(name, 'mytopic')"

Untuk informasi selengkapnya tentang perintah ini, lihat az eventgrid topic list.

Langkah berikutnya