Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Service Bus kan gebeurtenissen verzenden naar Event Grid wanneer er berichten in een wachtrij of een abonnement staan wanneer er geen ontvangers aanwezig zijn. U kunt Event Grid-abonnementen maken voor uw Service Bus-naamruimten, naar deze gebeurtenissen luisteren en vervolgens reageren op de gebeurtenissen door een ontvanger te starten. Met deze functie kunt u Service Bus gebruiken in reactieve programmeermodellen. Het belangrijkste scenario van deze functie is dat Service Bus-wachtrijen of -abonnementen met een laag volume berichten niet hoeven te beschikken over een ontvanger die continu naar berichten peilt.
Als u de functie wilt inschakelen, hebt u de volgende items nodig:
- Een Service Bus Premium-naamruimte met ten minste één Service Bus-wachtrij of een Service Bus-onderwerp met ten minste één abonnement.
 - Inzendertoegang tot de Service Bus-naamruimte. Navigeer naar uw Service Bus-naamruimte in Azure Portal en selecteer vervolgens Toegangsbeheer (IAM) en selecteer het tabblad Roltoewijzingen . Controleer of u de inzendertoegang tot de naamruimte hebt.
 - Daarnaast hebt u een Event Grid-abonnement nodig voor de Service Bus-naamruimte. Dit abonnement ontvangt een melding van Event Grid dat er berichten moeten worden opgehaald. Typische abonnees kunnen de Logic Apps-functie van Azure App Service, Azure Functions of een webhook zijn die contact op neemt met een web-app. De abonnee verwerkt vervolgens de berichten.
 
              
              
            
Beschikbare gebeurtenistypen
Service Bus verzendt de volgende gebeurtenistypen:
| Gebeurtenistype | Beschrijving | 
|---|---|
Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners | 
Wordt gegenereerd wanneer een nieuw actief bericht binnenkomt in een wachtrij of abonnement en er geen ontvangers luisteren. | 
Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners | 
Wordt gegenereerd wanneer een nieuw actief bericht binnenkomt in een dode-letterwachtrij en er geen actieve luisteraars zijn. | 
Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications | 
Elke 30 seconden verhoogd als er actieve berichten in een wachtrij of abonnement staan, zelfs als er actieve listeners zijn voor die specifieke wachtrij of dat abonnement. Dit wordt ook gegenereerd wanneer het aantal actieve berichten overgaat van 0 naar een positieve waarde voor de wachtrij of het abonnement. | 
Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications | 
Elke 30 seconden verhoogd als er berichten in de entiteit dead-letter van een wachtrij of abonnement staan, zelfs als er actieve listeners zijn op de entiteit dead-letter van die specifieke wachtrij of dat abonnement. Het wordt ook gegenereerd wanneer het aantal dead-letter berichten overgaat van 0 naar een positieve waarde voor de dead-letter entiteit van de wachtrij of het abonnement. | 
Voorbeeld van een gebeurtenis
Actieve berichten beschikbaar zonder luisteraars
Deze gebeurtenis wordt gegenereerd als u actieve berichten in een wachtrij of een abonnement hebt en er geen ontvangers aan het luisteren zijn.
[{
  "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"
}]
Onbestelbare berichten beschikbaar zonder luisteraars
Het schema voor een gebeurtenis in de dead-letter queue is vergelijkbaar. U krijgt ten minste één gebeurtenis per wachtrij voor dode brieven die berichten bevat en geen actieve ontvangers heeft.
[{
  "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"
}]
Actieve berichten beschikbaar periodieke meldingen
Deze gebeurtenis wordt periodiek gegenereerd als u actieve berichten in de specifieke wachtrij of het specifieke abonnement hebt, zelfs als er actieve listeners zijn voor die specifieke wachtrij of dat abonnement.
[{
  "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"
}]
Onbestelbare berichten: periodieke meldingen beschikbaar
Deze gebeurtenis wordt periodiek gegenereerd als u deadletter-berichten hebt in de wachtrij of het abonnement, zelfs als er actieve listeners zijn op de deadletter-entiteit van die wachtrij of dat abonnement.
[{
  "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"
}]
Gebeurteniseigenschappen
Een gebeurtenis bevat de volgende gegevens op het hoogste niveau:
| Vastgoed | Typologie | Beschrijving | 
|---|---|---|
topic | 
touw | Volledig hulpbronpad naar de gebeurtenisbron. Dit veld kan niet worden geschreven. Event Grid biedt deze waarde. | 
subject | 
touw | Het door de uitgever gedefinieerde pad naar het gebeurtenisonderwerp. | 
eventType | 
touw | Een van de geregistreerde gebeurtenistypen voor deze gebeurtenisbron. | 
eventTime | 
touw | Het tijdstip waarop de gebeurtenis wordt gegenereerd op basis van de UTC-tijd van de provider. | 
id | 
touw | Unieke id voor de gebeurtenis. | 
data | 
Voorwerp | Service Bus-gebeurtenisgegevens. | 
dataVersion | 
touw | De schemaversie van het gegevensobject. De uitgever definieert de schemaversie. | 
metadataVersion | 
touw | De schemaversie van de metagegevens van de gebeurtenis. Event Grid definieert het schema van de eigenschappen op het hoogste niveau. Event Grid biedt deze waarde. | 
Het gegevensobject heeft de volgende eigenschappen:
| Vastgoed | Typologie | Beschrijving | 
|---|---|---|
namespaceName | 
touw | De Service Bus-naamruimte waarin de resource zich bevindt. | 
requestUri | 
touw | De URI naar de specifieke wachtrij of het specifieke abonnement dat de gebeurtenis uitzendt. | 
entityType | 
touw | Het type Service Bus-entiteit dat gebeurtenissen verzendt (wachtrij of abonnement). | 
queueName | 
touw | De wachtrij met actieve berichten als u zich abonneert op een wachtrij. Waarde null als u onderwerpen/abonnementen gebruikt. | 
topicName | 
touw | Het onderwerp waartoe het Service Bus-abonnement met actieve berichten behoort. Waarde null als u een wachtrij gebruikt. | 
subscriptionName | 
touw | Het Service Bus-abonnement met actieve berichten. Waarde null als u een wachtrij gebruikt. | 
Event Grid-abonnementen voor Service Bus-naamruimten
U kunt Event Grid-abonnementen maken voor Service Bus-naamruimten op drie verschillende manieren:
- Azure-portal. Zie de volgende zelfstudies voor meer informatie over het gebruik van Azure Portal voor het maken van Event Grid-abonnementen voor Service Bus-gebeurtenissen met Azure Logic Apps en Azure Functions als handlers.
 
Azure CLI. In het volgende CLI-voorbeeld ziet u hoe u een Azure Functions-abonnement maakt voor een systeemonderwerp dat is gemaakt door een Service Bus-naamruimte.
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. Hier volgt een voorbeeld: 
$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>" 
Hoeveel gebeurtenissen worden verzonden en hoe vaak?
Als u meerdere wachtrijen en onderwerpen of abonnementen in de naamruimte hebt, krijgt u ten minste één gebeurtenis per wachtrij en één per abonnement. De gebeurtenissen worden onmiddellijk verzonden als er geen berichten in de Service Bus-entiteit zijn en er een nieuw bericht binnenkomt. Of de gebeurtenissen worden elke twee minuten verzonden, tenzij Service Bus een actieve ontvanger detecteert. Tijdens het bladeren door berichten worden de gebeurtenissen niet onderbroken.
Service Bus verzendt standaard gebeurtenissen voor alle entiteiten in de naamruimte. Als u alleen gebeurtenissen voor specifieke entiteiten wilt ophalen, raadpleegt u de volgende sectie.
Filters gebruiken om te beperken waar u gebeurtenissen vandaan krijgt
Als u alleen gebeurtenissen wilt ophalen uit bijvoorbeeld één wachtrij of één abonnement in uw naamruimte, kunt u de filters Begin met of Eindigt gebruiken die worden geleverd door Event Grid. In sommige interfaces worden de filters pre- en suffix-filters genoemd. Als u gebeurtenissen voor meerdere, maar niet alle wachtrijen en abonnementen wilt ophalen, kunt u meerdere Event Grid-abonnementen maken en een filter voor elk abonnement opgeven.
Volgende stappen
Zie de volgende handleidingen: