Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede şunların nasıl yapıldığını gösterir:
- Event Grid domaini oluşturma
- Event Grid konularına abone olma
- Anahtarları listele
- Olayları etki alanına yayımlama
Olay etki alanları hakkında bilgi edinmek için bkz . Event Grid konularını yönetmek için olay etki alanlarını anlama.
Olay Etki Alanı Oluşturma
Büyük konu kümelerini yönetmek için bir olay etki alanı oluşturun.
az eventgrid domain create \
-g <my-resource-group> \
--name <my-domain-name> \
-l <location>
Başarılı oluşturma aşağıdaki değerleri döndürür:
{
"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"
}
Dikkat edin ki endpoint ve id, etki alanını yönetmek ve olayları yayımlamak için gereklidirler.
Konulara erişimi yönetme
Konulara erişimi yönetme işlemi rol ataması aracılığıyla gerçekleştirilir. Rol ataması, Azure kaynaklarındaki işlemleri belirli bir kapsamdaki yetkili kullanıcılarla sınırlamak için Azure rol tabanlı erişim denetimini kullanır.
Event Grid'de, belirli kullanıcılara etki alanı içindeki çeşitli konulara erişim atamak için kullanabileceğiniz iki yerleşik rol vardır. Bu roller EventGrid EventSubscription Contributor (Preview), aboneliklerin oluşturulmasını ve silinmesini sağlayan ve EventGrid EventSubscription Reader (Preview)yalnızca olay aboneliklerinin listelenmesine izin veren rolleridir.
Aşağıdaki Azure CLI komut sınırları alice@contoso.com yalnızca konu başlığı demotopic1altında olay abonelikleri oluşturmak ve silmek için geçerlidir:
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
Event Grid işlemleri için erişimi yönetme hakkında daha fazla bilgi için bkz . Event Grid güvenliği ve kimlik doğrulaması.
Konu başlıklarını ve abonelikleri oluşturma
Event Grid hizmeti, etki alanı konusu için olay aboneliği oluşturma çağrısına göre etki alanında ilgili konuyu otomatik olarak oluşturur ve yönetir. Bir etki alanında konu oluşturmak için ayrı bir adım yoktur. Benzer şekilde, bir konu için son olay aboneliği silindiğinde, konu da silinir.
Bir etki alanındaki bir konuya abone olmak, başka bir Azure kaynağına abone olmakla aynıdır. Kaynak kimliği için, daha önce domain oluşturulurken döndürülen olay domain kimliğini belirtin. Abone olmak istediğiniz konuyu belirtmek için kaynak kaynak kimliğinin sonuna ekleyin /topics/<my-topic> . Etki alanındaki tüm olayları alan bir etki alanı kapsamı olay aboneliği oluşturmak için, hiçbir konu belirtmeden olay etki alanı kimliğini belirtin.
Genellikle, önceki bölümde erişim izni vermiş olduğunuz kullanıcı aboneliği oluşturur. Bu makaleyi basitleştirmek için aboneliği oluşturursunuz.
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
Olaylarınızı abone yapmak için bir test uç noktasına ihtiyacınız varsa, her zaman gelen olayları görüntüleyen önceden oluşturulmuş bir web uygulaması dağıtabilirsiniz. Etkinliklerinizi adresinden https://<your-site-name>.azurewebsites.net/api/updatestest web sitenize gönderebilirsiniz.
Bir konu için ayarlanan izinler Microsoft Entra Id içinde depolanır ve açıkça silinmesi gerekir. Bir olay aboneliğinin silinmesi, kullanıcıların bir konuya yazma erişimi varsa olay abonelikleri oluşturma erişimini iptal etmez.
Event Grid etki alanında olayları yayımlama
Olayları bir etki alanında yayımlamak, özel bir konuya yayımlamayla aynıdır. Ancak, özel konuya yayımlamak yerine tüm olayları etki alanı uç noktasına yayımlarsınız. JSON olay verilerinde, olayların gitmesini istediğiniz konuyu belirtirsiniz. Aşağıdaki olay dizisi, "id": "1111" içeren olayların demotopic1 konusuna, "id": "2222" içeren olayların ise demotopic2 konusuna gönderilmesine neden olur:
[{
"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"
}]
Azure CLI ile etki alanı uç noktasını almak için
az eventgrid domain show \
-g <my-resource-group> \
-n <my-domain>
Etki alanının anahtarlarını almak için şunu kullanın:
az eventgrid domain key list \
-g <my-resource-group> \
-n <my-domain>
Ardından olaylarınızı Event Grid etki alanınızda yayımlamak için sık kullandığınız HTTP POST yöntemini kullanın.
Not
Event Grid etki alanında olay yayımlamak için programlama dili SDK'larını kullanan örnekler için aşağıdaki bağlantıları kullanın:
Konu veya abonelik listelerini arama
Çok sayıda konuyu veya aboneliği aramak ve yönetmek için Event Grid API'leri listelemeyi ve sayfalandırmayı destekler.
CLI'nin kullanılması
Örneğin, aşağıdaki komut içinde adı mytopicolan tüm konuları listeler.
az eventgrid topic list --odata-query "contains(name, 'mytopic')"
Bu komut hakkında daha fazla bilgi için bkz az eventgrid topic list. .
Sonraki adımlar
- Olay etki alanlarındaki üst düzey kavramlar ve bunların neden yararlı olduğu hakkında daha fazla bilgi için bkz . Olay Etki Alanları'na kavramsal genel bakış.