Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Service Bus kan skicka händelser till Event Grid när det finns meddelanden i en kö eller en prenumeration när inga mottagare finns. Du kan skapa Event Grid-prenumerationer på dina Service Bus-namnområden, lyssna på dessa händelser och sedan reagera på händelserna genom att starta en mottagare. Med den här funktionen kan du använda Service Bus i reaktiva programmeringsmodeller. Det viktigaste scenariot med den här funktionen är att Service Bus-köer eller prenumerationer med en låg mängd meddelanden inte behöver ha en mottagare som söker efter meddelanden kontinuerligt.
För att aktivera funktionen behöver du följande:
- Ett Service Bus Premium-namnområde med minst en Service Bus-kö eller ett Service Bus-ämne med minst en prenumeration.
- Deltagaråtkomst till Service Bus-namnområdet. Gå till Service Bus-namnområdet i Azure-portalen och välj sedan Åtkomstkontroll (IAM) och välj fliken Rolltilldelningar . Kontrollera att du har deltagaråtkomst till namnområdet.
- Dessutom behöver du en Event Grid-prenumeration för Service Bus-namnområdet. Den här prenumerationen får ett meddelande från Event Grid om att det finns meddelanden som ska hämtas. Vanliga prenumeranter kan vara Logic Apps-funktionen i Azure App Service, Azure Functions eller en webhook som kontaktar en webbapp. Prenumeranten bearbetar sedan meddelandena.
Tillgängliga händelsetyper
Service Bus genererar följande händelsetyper:
| Händelsetyp | Beskrivning |
|---|---|
Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners |
Utlöses när ett nytt aktivt meddelande tas emot i en kö eller prenumeration och det inte finns några mottagare som lyssnar. |
Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners |
Genereras när nya aktiva meddelanden tas emot i en kö med obeställbara meddelanden och det inte finns några aktiva lyssnare. |
Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications |
Upphöjt var 30:e sekund om det finns aktiva meddelanden i en kö eller prenumeration, även om det finns aktiva lyssnare i den specifika kön eller prenumerationen. Det utlöses också när antalet aktiva meddelanden övergår från 0 till ett positivt värde för kön eller prenumerationen. |
Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications |
Upphöjt var 30:e sekund om det finns meddelanden i en entitet med obeställbara meddelanden i en kö eller prenumeration, även om det finns aktiva lyssnare i entiteten med obeställbara meddelanden i den specifika kön eller prenumerationen. Det genereras också när antalet meddelanden med obeställbara meddelanden övergår från 0 till ett positivt värde för entiteten med obeställbara bokstäver i kön eller prenumerationen. |
Exempelhändelse
Aktiva meddelanden tillgängliga utan lyssnare
Den här händelsen genereras om du har aktiva meddelanden i en kö eller en prenumeration och det inte finns några mottagare som lyssnar.
[{
"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"
}]
Obeställbara meddelanden tillgängliga utan lyssnare
Schemat för en köhändelse med obeställbara meddelanden liknar det. Du får minst en händelse per felkö som har meddelanden men inga aktiva mottagare.
[{
"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"
}]
Tillgängliga aktiva meddelanden och periodiska notifieringar
Den här händelsen genereras regelbundet om du har aktiva meddelanden i den specifika kön eller prenumerationen, även om det finns aktiva lyssnare för den specifika kön eller prenumerationen.
[{
"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"
}]
Tillgängliga periodiska aviseringar för obeställbara meddelanden
Den här händelsen genereras regelbundet om du har deadletter-meddelanden i den specifika kön eller prenumerationen, även om det finns aktiva lyssnare på deadletter-entiteten för den specifika kön eller prenumerationen.
[{
"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"
}]
Händelseegenskaper
En händelse har följande data på den översta nivån:
| Fastighet | Typ | Beskrivning |
|---|---|---|
topic |
snöre | Fullständig resurssökväg till händelsekällan. Det här fältet kan inte skrivas. Event Grid tillhandahåller det här värdet. |
subject |
snöre | Utgivardefinierad sökväg till händelseobjektet. |
eventType |
snöre | En av de registrerade händelsetyperna för den här händelsekällan. |
eventTime |
snöre | Den tid då händelsen genereras baserat på leverantörens UTC-tid. |
id |
snöre | Unik identifierare för händelsen. |
data |
objekt | Service Bus-händelsedata. |
dataVersion |
snöre | Schemaversionen av dataobjektet. Utgivaren definierar schemaversionen. |
metadataVersion |
snöre | Schemaversionen av händelsemetadata. Event Grid definierar schemat för egenskaperna på den översta nivån. Event Grid tillhandahåller det här värdet. |
Dataobjektet har följande egenskaper:
| Fastighet | Typ | Beskrivning |
|---|---|---|
namespaceName |
snöre | Service Bus-namnområdet som resursen finns i. |
requestUri |
snöre | URI:n till den specifika kön eller prenumerationen som genererar händelsen. |
entityType |
snöre | Typen av Service Bus-entitet som genererar händelser (kö eller prenumeration). |
queueName |
snöre | Kön med aktiva meddelanden när du prenumererar på en kö. Värde null om du använder ämnen/prenumerationer. |
topicName |
snöre | Ämnet som Service Bus-prenumerationen med aktiva meddelanden tillhör. Värde null om du använder en kö. |
subscriptionName |
snöre | Service Bus-prenumerationen med aktiva meddelanden. Värde null om du använder en kö. |
Event Grid-prenumerationer för Service Bus-namnområden
Du kan skapa Event Grid-prenumerationer för Service Bus-namnområden på tre olika sätt:
- Azure-portalen. Se följande självstudier för att lära dig hur du använder Azure-portalen för att skapa Event Grid-prenumerationer för Service Bus-händelser med Azure Logic Apps och Azure Functions som hanterare.
Azure CLI. I följande CLI-exempel visas hur du skapar en Azure Functions-prenumeration för ett systemämne som skapats av ett Service Bus-namnområde.
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. Här är ett exempel:
$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>"
Hur många händelser genereras och hur ofta?
Om du har flera köer och ämnen eller prenumerationer i namnområdet får du minst en händelse per kö och en per prenumeration. Händelserna genereras omedelbart om det inte finns några meddelanden i Service Bus-entiteten och ett nytt meddelande tas emot. Eller så genereras händelserna varannan minut om inte Service Bus identifierar en aktiv mottagare. Meddelandebläddring avbryter inte händelserna.
Som standard genererar Service Bus händelser för alla entiteter i namnområdet. Om du bara vill hämta händelser för specifika entiteter kan du läsa nästa avsnitt.
Använd filter för att begränsa var du hämtar händelser från
Om du bara vill hämta händelser från till exempel en kö eller en prenumeration inom ditt namnområde kan du använda filtren Börjar med eller Slutar med som tillhandahålls av Event Grid. I vissa gränssnitt kallas filtren Pre- och Suffixfilter. Om du vill hämta händelser för flera, men inte alla, köer och prenumerationer, kan du skapa flera Event Grid-prenumerationer och ange ett filter för var och en.
Nästa steg
Se följande handledningar: