Kolejki i tematy usługi Service Bus jako programy obsługi zdarzeń dla zdarzeń usługi Azure Event Grid
Program obsługi zdarzeń odbiera zdarzenia ze źródła zdarzeń za pośrednictwem usługi Event Grid i przetwarza te zdarzenia. Możesz użyć wystąpień kilku usług platformy Azure do obsługi zdarzeń, a usługa Azure Service Bus jest jedną z nich. W tym artykule pokazano, jak używać kolejki lub tematu usługi Service Bus jako procedury obsługi zdarzeń z usługi Event Grid.
Kolejki usługi Service Bus
Zdarzenia w usłudze Event Grid można kierować bezpośrednio do kolejek usługi Service Bus do użycia w scenariuszach buforowania lub sterowania i sterowania w aplikacjach dla przedsiębiorstw.
Korzystanie z witryny Azure Portal
W witrynie Azure Portal podczas tworzenia subskrypcji zdarzeń wybierz pozycję Kolejka usługi Service Bus jako typ punktu końcowego, a następnie kliknij pozycję Wybierz punkt końcowy , aby wybrać kolejkę usługi Service Bus.
Uwaga
Kolejki z obsługą sesji nie są obsługiwane jako programy obsługi zdarzeń dla zdarzeń usługi Azure Event Grid
Interfejs wiersza polecenia platformy Azure
Użyj polecenia z ustawioną az eventgrid event-subscription create
wartością --endpoint-type
servicebusqueue
i --endpoint
ustaw wartość /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Oto przykład:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
Możesz również użyć az eventgrid topic event-subscription
polecenia dla tematów niestandardowych, az eventgrid system-topic event-subscription
polecenia dla tematów systemowych i az eventgrid partner topic event-subscription create
polecenia dla tematów partnerskich.
Korzystanie z programu Azure PowerShell
Użyj polecenia New-AzEventGridSubscription z ustawioną wartością -EndpointType
servicebusqueue
i -Endpoint
ustaw wartość /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Oto przykład:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Możesz również użyć New-AzEventGridSystemTopicEventSubscription
polecenia dla tematów systemowych i New-AzEventGridPartnerTopicEventSubscription
polecenia dla tematów partnerskich.
Tematy usługi Service Bus
Zdarzenia w usłudze Event Grid można kierować bezpośrednio do tematów usługi Service Bus na potrzeby scenariuszy obsługi komunikatów poleceń i sterowania nimi.
Korzystanie z witryny Azure Portal
W witrynie Azure Portal podczas tworzenia subskrypcji zdarzeń wybierz pozycję Temat usługi Service Bus jako typ punktu końcowego, a następnie kliknij pozycję Wybierz punkt końcowy , aby wybrać temat usługi Service Bus.
Interfejs wiersza polecenia platformy Azure
Użyj polecenia z ustawioną az eventgrid event-subscription create
wartością --endpoint-type
servicebustopic
i --endpoint
ustaw wartość /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Oto przykład:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
Możesz również użyć az eventgrid topic event-subscription
polecenia dla tematów niestandardowych, az eventgrid system-topic event-subscription
polecenia dla tematów systemowych i az eventgrid partner topic event-subscription create
polecenia dla tematów partnerskich.
Korzystanie z programu Azure PowerShell
Użyj polecenia New-AzEventGridSubscription z ustawioną wartością -EndpointType
servicebustopic
i -Endpoint
ustaw wartość /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Oto przykład:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Możesz również użyć New-AzEventGridSystemTopicEventSubscription
polecenia dla tematów systemowych i New-AzEventGridPartnerTopicEventSubscription
polecenia dla tematów partnerskich.
Nagłówki komunikatów
Są to właściwości odbierane w nagłówkach komunikatów:
Nazwa właściwości | Opis |
---|---|
aeg-subscription-name | Nazwa subskrypcji zdarzeń. |
aeg-delivery-count | Liczba prób wykonanych dla zdarzenia. |
aeg-event-type | Typ zdarzenia. Może to być jedna z następujących wartości:
|
aeg-metadata-version | Wersja metadanych zdarzenia. W przypadku schematu zdarzeń usługi Event Grid ta właściwość reprezentuje wersję metadanych i schemat zdarzeń w chmurze, reprezentuje wersję specyfikacji. |
aeg-data-version | Wersja danych zdarzenia. W przypadku schematu zdarzeń usługi Event Grid ta właściwość reprezentuje wersję danych i schemat zdarzeń w chmurze, ale nie ma zastosowania. |
aeg-output-event-id | Identyfikator zdarzenia usługi Event Grid. |
Po wysłaniu zdarzenia do kolejki usługi Service Bus lub tematu jako komunikatu messageid
obsługiwanego przez brokera komunikat komunikat jest wewnętrznym identyfikatorem systemu.
Wewnętrzny identyfikator systemu komunikatu jest utrzymywany w całej ponownej instalacji zdarzenia, dzięki czemu można uniknąć zduplikowanych dostaw, włączając wykrywanie duplikatów w jednostce usługi Service Bus. Zalecamy włączenie czasu trwania wykrywania duplikatów w jednostce usługi Service Bus jako czasu wygaśnięcia (TTL) zdarzenia lub maksymalnego czasu trwania ponawiania, w zależności od tego, co jest dłuższe.
Właściwości dostarczania
Subskrypcje zdarzeń umożliwiają konfigurowanie nagłówków HTTP uwzględnionych w dostarczanych zdarzeniach. Ta funkcja umożliwia ustawienie niestandardowych nagłówków, których wymaga miejsce docelowe. Możesz ustawić nagłówki niestandardowe dla zdarzeń dostarczanych do kolejek i tematów usługi Azure Service Bus.
Usługa Azure Service Bus obsługuje używanie następujących właściwości komunikatów podczas wysyłania pojedynczych komunikatów.
Nazwa nagłówka | Typ nagłówka |
---|---|
MessageId |
Dynamiczny |
PartitionKey |
Tryb statyczny lub dynamiczny |
SessionId |
Tryb statyczny lub dynamiczny |
CorrelationId |
Tryb statyczny lub dynamiczny |
Label |
Tryb statyczny lub dynamiczny |
ReplyTo |
Tryb statyczny lub dynamiczny |
ReplyToSessionId |
Tryb statyczny lub dynamiczny |
To |
Tryb statyczny lub dynamiczny |
ViaPartitionKey |
Tryb statyczny lub dynamiczny |
Uwaga
- Wartość
MessageId
domyślna to wewnętrzny identyfikator zdarzenia usługi Event Grid. Można go zastąpić. Na przykładdata.field
. - Można ustawić tylko wartość
SessionId
lubMessageId
.
Aby uzyskać więcej informacji, zobacz Niestandardowe właściwości dostarczania.
Przykłady REST (dla PUT)
Kolejka usługi Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Kolejka usługi Service Bus — dostarczanie przy użyciu tożsamości zarządzanej
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Temat usługi Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Temat usługi Service Bus — dostarczanie za pomocą tożsamości zarządzanej
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Uwaga
W przypadku przejścia w tryb failover dla przestrzeni nazw usługi Service Bus, która jest włączona funkcja odzyskiwania po awarii geograficznej, pomocnicza przestrzeń nazw nie emituje zdarzeń do usługi Event Grid. Musisz ręcznie dodać subskrypcję usługi Event Grid dla dodatkowej przestrzeni nazw.
Następne kroki
Zobacz artykuł Procedury obsługi zdarzeń, aby uzyskać listę obsługiwanych programów obsługi zdarzeń.