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.
Service Bus, kuyrukta veya abonelikte alıcı olmadığında iletiler olduğunda olayları Event Grid'e yayabilir. Service Bus ad alanlarınıza Event Grid abonelikleri oluşturabilir, bu olayları dinleyebilir ve ardından bir alıcı başlatarak olaylara tepki vekleyebilirsiniz. Bu özellik ile Service Bus'ı reaktif programlama modellerinde kullanabilirsiniz. Bu özelliğin temel senaryosu, düşük hacimli iletilere sahip Service Bus kuyruklarının veya aboneliklerinin sürekli olarak iletileri yoklayan bir alıcıya sahip olması gerekmemesidir.
Özelliği etkinleştirmek için aşağıdaki öğelere ihtiyacınız vardır:
- En az bir Service Bus kuyruğu içeren bir Service Bus Premium ad alanı veya en az bir aboneliği olan bir Service Bus konusu.
- Service Bus ad alanına katkıda bulunanların erişimi. Azure portalında Service Bus ad alanınıza gidin, Erişim denetimi (IAM) seçeneğini belirleyin ve Rol atamaları sekmesini seçin. Ad alanına katkıda bulunan erişiminiz olduğunu doğrulayın.
- Ayrıca, Service Bus ad alanı için bir Event Grid aboneliğine ihtiyacınız vardır. Bu abonelik, Event Grid'den alınması gereken iletiler olduğuna ilişkin bir bildirim alır. Tipik aboneler, Azure App Service'in Logic Apps özelliği, Azure Functions veya bir web uygulamasıyla iletişim kuran bir web kancası olabilir. Abone daha sonra iletileri işler.
Kullanılabilir olay türleri
Service Bus aşağıdaki olay türlerini yayar:
| Olay türü | Açıklama |
|---|---|
Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners |
Yeni bir etkin ileti bir kuyruğa veya aboneliğe ulaştığında ve dinleyen alıcı olmadığında tetiklenir. |
Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners |
Yeni bir etkin ileti ölü mektup kuyruğuna geldiğinde ve etkin dinleyiciler olmadığında tetiklenir. |
Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications |
Kuyrukta veya abonelikte etkin iletiler varsa, belirli bir kuyrukta veya abonelikte etkin dinleyiciler olsa bile her 30 saniyede bir artırılır. Ayrıca etkin ileti sayısı 0'dan kuyruk veya abonelik için pozitif bir değere geçtiğinde de oluşturulur. |
Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications |
Bir kuyruğun veya aboneliğin teslim edilemeyen ileti varlığında iletiler varsa, belirli bir kuyruğun veya aboneliğin teslim edilemeyen ileti varlığında etkin dinleyiciler olsa bile her 30 saniyede bir tetiklenir. Ayrıca, teslim edilemeyen ileti sayısı 0'dan kuyruğun veya aboneliğin teslim edilemeyen harf varlığı için pozitif bir değere geçtiğinde de tetiklenir. |
Örnek olay
Dinleyicisi olmayan etkin iletiler
Kuyrukta veya abonelikte etkin iletileriniz varsa ve dinleyen bir alıcı yoksa bu olay oluşturulur.
[{
"topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
"subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
"eventType": "Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Dinleyicisi olmayan ölü mektup iletileri mevcut
Teslim edilemeyen bir kuyruk olayının şeması benzerdir. İletileri olan ve etkin alıcısı olmayan teslim edilemeyen iletiler kuyruğu başına en az bir olay alırsınız.
[{
"topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
"subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
"eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Etkin mesajlar düzenli aralıklarla mevcut bildirimlerdir.
Belirli bir kuyrukta veya abonelikte etkin dinleyiciler olsa bile, bu olay, bu belirli kuyrukta veya abonelikte etkin iletileriniz varsa düzenli aralıklarla oluşturulur.
[{
"topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
"subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
"eventType": "Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Teslim edilemeyen mesajlar için mevcut periyodik bildirimler
Belirli bir kuyruk veya aboneliğin deadletter varlığında etkin dinleyiciler olsa bile, belirli bir kuyruk veya abonelikte deadletter mesajlarınız varsa, bu olay periyodik olarak oluşturulur.
[{
"topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
"subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
"eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Olay özellikleri
Bir olay aşağıdaki üst düzey verilere sahiptir:
| Mülkiyet | Türü | Açıklama |
|---|---|---|
topic |
String | Etkinlik kaynağının kaynak yolunun tamamı. Bu alan yazılabilir değil. Event Grid bu değeri sağlar. |
subject |
String | Yayımcı tarafından tanımlanan olay konusuna giden yol. |
eventType |
String | Bu olay kaynağı için kayıtlı olay türlerinden biri. |
eventTime |
String | Olayın oluşturulma saati, sağlayıcının UTC zamanına göre belirlenir. |
id |
String | Etkinliği benzersiz tanımlayan öğe. |
data |
nesne | Service Bus olay verileri. |
dataVersion |
String | Veri nesnesinin şema sürümü. Şema sürümünü yayımcı tanımlar. |
metadataVersion |
String | Olay meta verilerinin şema sürümü. Event Grid en üst düzey özelliklerin şemasını tanımlar. Event Grid bu değeri sağlar. |
Veri nesnesi aşağıdaki özelliklere sahiptir:
| Mülkiyet | Türü | Açıklama |
|---|---|---|
namespaceName |
String | Kaynağın içinde bulunduğu Service Bus ad alanı. |
requestUri |
String | Olayı yayan belirli bir kuyruğa veya aboneliğe ait URI. |
entityType |
String | Service Bus olaylarını yayımlayan varlık türü (kuyruk veya abonelik). |
queueName |
String | Kuyruğa abone olunan etkin iletileri içeren kuyruk. Konular veya abonelikler kullanılıyorsa değer null'dır. |
topicName |
String | Etkin iletileri içeren Service Bus aboneliğinin ait olduğu konu başlığı. Kuyruk kullanıyorsanız değer null olmalıdır. |
subscriptionName |
String | Etkin iletiler içeren Service Bus aboneliği. Kuyruk kullanıyorsanız değer null olmalıdır. |
Service Bus ad alanları için Event Grid abonelikleri
Service Bus ad alanları için Event Grid aboneliklerini üç farklı yolla oluşturabilirsiniz:
- Azure portalı. İşleyici olarak Azure Logic Apps ve Azure İşlevleri ile Service Bus olayları için Event Grid abonelikleri oluşturmak üzere Azure portalını kullanmayı öğrenmek için aşağıdaki öğreticilere bakın.
Azure CLI. Aşağıdaki CLI örneği, Service Bus ad alanı tarafından oluşturulan bir sistem konusu için Azure İşlevleri aboneliğinin nasıl oluşturulacağını gösterir.
namespaceid=$(az resource show --namespace Microsoft.ServiceBus --resource-type namespaces --name "<service bus namespace>" --resource-group "<resource group that contains the service bus namespace>" --query id --output tsv az eventgrid event-subscription create --resource-id $namespaceid --name "<YOUR EVENT GRID SUBSCRIPTION NAME>" --endpoint "<your_endpoint_url>" --subject-ends-with "<YOUR SERVICE BUS SUBSCRIPTION NAME>"
- PowerShell. Örnek:
$namespaceID = (Get-AzServiceBusNamespace -ResourceGroupName "<YOUR RESOURCE GROUP NAME>" -NamespaceName "<YOUR NAMESPACE NAME>").Id New-AzEVentGridSubscription -EventSubscriptionName "<YOUR EVENT GRID SUBSCRIPTION NAME>" -ResourceId $namespaceID -Endpoint "<YOUR ENDPOINT URL>” -SubjectEndsWith "<YOUR SERVICE BUS SUBSCRIPTION NAME>"
Kaç olay yayılıyor ve ne sıklıkta?
Ad alanında birden çok kuyruk ve konu başlığı veya aboneliğiniz varsa, kuyruk başına en az bir olay ve abonelik başına bir olay alırsınız. Service Bus varlığında ileti yoksa ve yeni bir ileti gelirse olaylar hemen gönderilir. Veya Service Bus etkin bir alıcı algılamadığı sürece olaylar iki dakikada bir yayılır. İletiye göz atma, olayları kesintiye uğratmaz.
Varsayılan olarak, Service Bus ad alanı içindeki tüm varlıklar için olayları yayar. Yalnızca belirli varlıklar için olayları almak istiyorsanız sonraki bölüme bakın.
Olayları nereden aldığınızı sınırlamak için filtreleri kullanma
tr-TR: Örneğin, yalnızca ad alanınızdaki bir kuyruktan veya bir abonelikten olay almak istiyorsanız, Event Grid tarafından sunulan ile başlayan veya ile biten filtrelerini kullanabilirsiniz. Bazı arabirimlerde filtreler Ön ve Sonek filtreleri olarak adlandırılır. Birden çok, ancak hepsi değil, kuyruk ve abonelik için olay almak istiyorsanız, birden çok Event Grid aboneliği oluşturabilir ve her birine bir filtre ekleyebilirsiniz.
Sonraki Adımlar
Aşağıdaki eğitimlere göz atın.