Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Event Grid obsługuje architektury oparte na zdarzeniach, kierując zdarzenia ze źródeł do obsługiwaczy. W tym artykule pokazano, jak skonfigurować kolejki i tematy usługi Azure Service Bus jako programy obsługi zdarzeń usługi Event Grid. Konfigurujesz kolejkę lub temat do przetwarzania zdarzeń w aplikacjach korporacyjnych, korzystając z portalu Azure, Azure CLI, Azure PowerShell lub REST API.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Temat Event Grid, temat systemowy, niestandardowy lub partnerski temat, do którego warto się zapisać. Więcej informacji można znaleźć w artykule Utwórz temat siatki zdarzeń lub domeny.
- Przestrzeń nazw usługi Service Bus zawierająca kolejkę lub temat do odbierania zdarzeń. Więcej informacji można znaleźć w artykule Tworzenie przestrzeni nazw usługi Service Bus i kolejki za pomocą witryny Azure Portal.
- Uprawnienia do utworzenia subskrypcji zdarzeń w temacie źródłowym oraz do wysyłania wiadomości do docelowej kolejki lub tematu w usłudze Service Bus.
Kolejki Service Bus
Kieruj zdarzenia w Event Grid bezpośrednio do kolejek Service Bus na potrzeby buforowania lub scenariuszy zarządzania i sterowania w aplikacjach korporacyjnych.
Konfiguruj kolejkę Service Bus za pomocą portalu Azure
W portalu Azure podczas tworzenia subskrypcji zdarzeń wybierz Service Bus Queue jako typ punktu końcowego, a następnie wybierz Select an endpoint, aby wybrać kolejkę usługi Service Bus.
Uwaga
Jeśli jako miejsce docelowe używasz kolejki lub subskrypcji tematu z włączoną obsługą sesji, ustaw właściwość sesji w zdarzeniu za pomocą właściwości dostarczania o nazwie nagłówka SessionId.
Konfiguruj kolejkę Service Bus za pomocą Azure CLI
Użyj polecenia az eventgrid event-subscription create, ustawiając --endpoint-type na servicebusqueue, a --endpoint na /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.
Konfiguruj kolejkę Service Bus za pomocą Azure PowerShell
Użyj polecenia New-AzEventGridSubscription z wartością parametru -EndpointType ustawioną na servicebusqueue oraz parametru -Endpoint ustawioną na /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
Kierowanie zdarzeń z usługi Event Grid bezpośrednio do tematów w usłudze Service Bus na potrzeby scenariuszy przesyłania komunikatów poleceń i sterowania.
Konfiguruj temat Service Bus za pomocą portalu Azure
W portalu Azure podczas tworzenia subskrypcji zdarzeń wybierz Service Bus Topic jako typ punktu końcowego, a następnie wybierz Wybierz punkt końcowy, aby wybrać temat w usłudze Service Bus.
Skonfiguruj temat usługi Service Bus przy użyciu interfejsu wiersza polecenia platformy Azure
Użyj polecenia az eventgrid event-subscription create, ustawiając --endpoint-type na servicebustopic, a --endpoint na /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.
Skonfiguruj temat usługi Service Bus za pomocą programu Azure PowerShell
Użyj polecenia New-AzEventGridSubscription z wartością parametru -EndpointType ustawioną na servicebustopic oraz parametru -Endpoint ustawioną na /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 podjętych dla tego 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ść oznacza wersję danych, a w przypadku schematu zdarzeń w chmurze nie ma zastosowania. |
| aeg-output-event-id | Identyfikator zdarzenia usługi Event Grid. |
Gdy wysyłasz zdarzenie do kolejki lub tematu usługi Service Bus jako komunikat obsługiwany przez brokera, element messageid tego komunikatu jest wewnętrznym identyfikatorem systemowym.
Wewnętrzny identyfikator systemowy wiadomości jest zachowywany podczas ponownego dostarczania zdarzenia, dzięki czemu można uniknąć zduplikowanych dostarczeń przez włączenie funkcji wykrywania duplikatów dla encji Service Bus. Ustaw czas wykrywania duplikatów na encji Service Bus na czas trwania (TTL) zdarzenia lub maksymalny czas powtórki, w zależności od tego, co jest dłuższe.
Właściwości dostarczania
Korzystając z subskrypcji zdarzeń, możesz ustawić nagłówki HTTP do dołączania do dostarczonych zdarzeń. Ta funkcja umożliwia ustawianie niestandardowych nagłówków wymaganych przez cel. Możesz ustawić niestandardowe nagłówki dla zdarzeń dostarczanych do kolejek i tematów usługi Azure Service Bus.
Azure Service Bus obsługuje następujące właściwości wiadomości, gdy wysyłasz pojedyncze wiadomości.
| Nazwa nagłówka | Typ nagłówka |
|---|---|
MessageId |
Dynamiczny |
PartitionKey |
Statyczny lub dynamiczny |
SessionId |
Statyczny lub dynamiczny |
CorrelationId |
Statyczny lub dynamiczny |
Label |
Statyczny lub dynamiczny |
ReplyTo |
Statyczny lub dynamiczny |
ReplyToSessionId |
Statyczny lub dynamiczny |
To |
Statyczny lub dynamiczny |
ViaPartitionKey |
Statyczny lub dynamiczny |
Uwaga
- Wartość
MessageIddomyślna to wewnętrzny identyfikator zdarzenia usługi Event Grid. Można go zastąpić. Na przykład użyjdata.field. - Można ustawić tylko wartość
SessionIdlubMessageId.
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 za pomocą 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 z użyciem 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
Gdy dla przestrzeni nazw usługi Service Bus z włączoną funkcją Geo-Disaster Recovery wystąpi przełączenie awaryjne, pomocnicza przestrzeń nazw nie emituje zdarzeń do usługi Event Grid. Musisz ręcznie dodać subskrypcję Event Grid dla drugiej przestrzeni nazw.
Treści powiązane
Listę obsługiwanych programów obsługi zdarzeń można znaleźć w artykule Programy obsługi zdarzeń.