Ustawianie lokalizacji utraconych komunikatów i zasad ponawiania
Podczas tworzenia subskrypcji zdarzeń można dostosować ustawienia dostarczania zdarzeń. W tym artykule pokazano, jak skonfigurować lokalizację utraconych komunikatów i dostosować ustawienia ponawiania prób. Aby uzyskać informacje o tych funkcjach, zobacz Dostarczanie komunikatów usługi Event Grid i ponawianie próby.
Uwaga
Aby dowiedzieć się więcej na temat dostarczania komunikatów, ponawiania prób i utraconych komunikatów, zobacz artykuł koncepcyjny: Dostarczanie komunikatów usługi Event Grid i ponawianie próby.
Ustawianie lokalizacji utraconych komunikatów
Aby ustawić lokalizację utraconych komunikatów, musisz mieć konto magazynu do przechowywania zdarzeń, których nie można dostarczyć do punktu końcowego. Przykłady pobierają identyfikator zasobu istniejącego konta magazynu. Tworzą subskrypcję zdarzeń, która używa kontenera na tym koncie magazynu dla punktu końcowego utraconych komunikatów.
Uwaga
- Przed uruchomieniem poleceń w tym artykule utwórz konto magazynu i kontener obiektów blob w magazynie.
- Usługa Event Grid tworzy obiekty blob w tym kontenerze. Nazwy obiektów blob będą miały nazwę subskrypcji usługi Event Grid ze wszystkimi literami w wielkim przypadku. Jeśli na przykład nazwa subskrypcji to
My-Blob-Subscription
, nazwy utraconych obiektów blob będą miećMY-BLOB-SUBSCRIPTION
(myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
). To zachowanie ma na celu ochronę przed różnicami w przypadku obsługi między usługami platformy Azure. - W powyższym przykładzie
.../2019/8/8/5/...
reprezentuje niezerową datę i godzinę (UTC):.../YYYY/MM/DD/HH/...
. - Utworzone obiekty blob utraconych będą zawierać co najmniej jedno zdarzenie w tablicy, co jest ważnym zachowaniem, które należy wziąć pod uwagę podczas przetwarzania utraconych liter.
Azure Portal
Podczas tworzenia subskrypcji zdarzeń można włączyć funkcję utraconych komunikatów na karcie Dodatkowe funkcje , jak pokazano na poniższej ilustracji. Po włączeniu tej funkcji określ kontener obiektów blob, który będzie zawierać zdarzenia z utraconymi literami oraz subskrypcję platformy Azure, która ma magazyn obiektów blob.
Opcjonalnie można włączyć tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika do obsługi utraconych komunikatów. Tożsamość zarządzana musi być członkiem roli kontroli dostępu opartej na rolach (RBAC), która umożliwia zapisywanie zdarzeń w magazynie.
Można również włączyć funkcję utraconych komunikatów i skonfigurować ustawienia istniejącej subskrypcji zdarzeń. Na stronie Subskrypcja zdarzeń subskrypcji zdarzeń przejdź do karty Dodatkowe funkcje, aby wyświetlić ustawienia utraconych komunikatów, jak pokazano na poniższej ilustracji.
Interfejs wiersza polecenia platformy Azure
containername=testcontainer
topicid=$(az eventgrid topic show --name demoTopic -g gridResourceGroup --query id --output tsv)
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint <endpoint_URL> \
--deadletter-endpoint $storageid/blobServices/default/containers/$containername
Aby wyłączyć usuwanie utraconych komunikatów, uruchom ponownie polecenie , aby utworzyć subskrypcję zdarzeń, ale nie podaj wartości dla deadletter-endpoint
elementu . Nie musisz usuwać subskrypcji zdarzeń.
Uwaga
Jeśli używasz interfejsu wiersza polecenia platformy Azure na komputerze lokalnym, powinien on być w wersji co najmniej 2.0.56. Aby uzyskać instrukcje na temat instalowania najnowszej wersji interfejsu wiersza polecenia platformy Azure, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
PowerShell
$containername = "testcontainer"
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
$storageid = (Get-AzStorageAccount -ResourceGroupName gridResourceGroup -Name demostorage).Id
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-DeadLetterEndpoint "$storageid/blobServices/default/containers/$containername"
Aby wyłączyć usuwanie utraconych komunikatów, uruchom ponownie polecenie , aby utworzyć subskrypcję zdarzeń, ale nie podaj wartości dla DeadLetterEndpoint
elementu . Nie musisz usuwać subskrypcji zdarzeń.
Uwaga
Jeśli używasz programu Azure PowerShell na komputerze lokalnym, użyj programu Azure PowerShell w wersji 1.1.0 lub nowszej. Pobierz i zainstaluj najnowszą wersję programu Azure PowerShell z plików do pobrania platformy Azure.
Ustawianie zasad ponawiania prób
Podczas tworzenia subskrypcji usługi Event Grid można ustawić wartości czasu próby dostarczenia zdarzenia przez usługę Event Grid. Domyślnie usługa Event Grid próbuje 24 godziny (1440 minut) lub 30 razy. Możesz ustawić jedną z tych wartości dla subskrypcji usługi Event Grid. Wartość czasu wygaśnięcia zdarzenia musi być liczbą całkowitą z zakresu od 1 do 1440. Wartość maksymalnej liczby ponownych prób musi być liczbą całkowitą z zakresu od 1 do 30.
Nie można skonfigurować harmonogramu ponawiania prób.
Azure Portal
Podczas tworzenia subskrypcji zdarzeń można skonfigurować ustawienia zasad ponawiania na karcie Dodatkowe funkcje .
Można również skonfigurować ustawienia zasad ponawiania dla istniejącej subskrypcji zdarzeń. Na stronie Subskrypcja zdarzeń subskrypcji zdarzeń przejdź do karty Dodatkowe funkcje, aby wyświetlić ustawienia zasad ponawiania, jak pokazano na poniższej ilustracji.
Interfejs wiersza polecenia platformy Azure
Aby ustawić czas wygaśnięcia zdarzenia na wartość inną niż 1440 minut, użyj:
az eventgrid event-subscription create \
-g gridResourceGroup \
--topic-name <topic_name> \
--name <event_subscription_name> \
--endpoint <endpoint_URL> \
--event-ttl 720
Aby ustawić maksymalną liczbę ponownych prób na wartość inną niż 30, użyj:
az eventgrid event-subscription create \
-g gridResourceGroup \
--topic-name <topic_name> \
--name <event_subscription_name> \
--endpoint <endpoint_URL> \
--max-delivery-attempts 18
Uwaga
Jeśli ustawisz wartości i event-ttl
max-deliver-attempts
, usługa Event Grid użyje pierwszego do wygaśnięcia, aby określić, kiedy zatrzymać dostarczanie zdarzeń. Jeśli na przykład ustawisz 30 minut jako czas wygaśnięcia (TTL) i 5 maksymalnych prób dostarczenia. Jeśli zdarzenie nie zostanie dostarczone po upływie 30 minut (lub) nie zostanie dostarczone po 5 próbach, w zależności od tego, co nastąpi wcześniej, zdarzenie jest nieaktywne. Jeśli ustawisz maksymalną liczbę prób dostarczenia na 10, w odniesieniu do harmonogramu ponawiania wykładniczego maksymalnie 6 prób dostarczenia nastąpi przed osiągnięciem 30 minut czasu wygaśnięcia, dlatego ustawienie maksymalnej liczby prób do 10 nie będzie miało wpływu w tym przypadku, a zdarzenia zostaną utracone po 30 minutach.
PowerShell
Aby ustawić czas wygaśnięcia zdarzenia na wartość inną niż 1440 minut, użyj:
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-EventTtl 720
Aby ustawić maksymalną liczbę ponownych prób na wartość inną niż 30, użyj:
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-MaxDeliveryAttempt 18
Uwaga
Jeśli ustawisz wartości i event-ttl
max-deliver-attempts
, usługa Event Grid użyje pierwszego do wygaśnięcia, aby określić, kiedy zatrzymać dostarczanie zdarzeń. Jeśli na przykład ustawisz 30 minut jako czas wygaśnięcia (TTL) i 5 maksymalnych prób dostarczenia. Jeśli zdarzenie nie zostanie dostarczone po upływie 30 minut (lub) nie zostanie dostarczone po 5 próbach, w zależności od tego, co nastąpi wcześniej, zdarzenie jest nieaktywne. Jeśli ustawisz maksymalną liczbę prób dostarczenia na 10, w odniesieniu do harmonogramu ponawiania wykładniczego maksymalnie 6 prób dostarczenia nastąpi przed osiągnięciem 30 minut czasu wygaśnięcia, dlatego ustawienie maksymalnej liczby prób do 10 nie będzie miało wpływu w tym przypadku, a zdarzenia zostaną utracone po 30 minutach.
Następne kroki
- Przykładowa aplikacja korzystająca z aplikacji funkcji platformy Azure do przetwarzania zdarzeń utraconych wiadomości można znaleźć w temacie Azure Event Grid Dead Letter Samples for .NET (Przykłady utraconych listów usługi Azure Event Grid dla platformy .NET).
- Aby uzyskać informacje na temat dostarczania zdarzeń i ponawiania prób, dostarczanie komunikatów usługi Event Grid i ponawianie próby.
- Aby zapoznać się z wprowadzeniem do usługi Event Grid, zobacz Wprowadzenie do usługi Azure Event Grid.
- Aby szybko rozpocząć korzystanie z usługi Event Grid, zobacz Tworzenie i kierowanie zdarzeń niestandardowych za pomocą usługi Azure Event Grid.