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 wiadomości 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 martwych listów, zobacz artykuł koncepcyjny: Dostarczanie komunikatów usługi Event Grid i ponawianie próby.
Ustawianie lokalizacji utraconych wiadomości
Aby ustawić lokalizację utraconych wiadomości, potrzebujesz konta 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 wiadomości.
Uwaga
- Utwórz konto magazynu i kontener obiektów blob w magazynie przed uruchomieniem poleceń w tym artykule.
- 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 wielkie litery. Jeśli na przykład nazwa subskrypcji to
My-Blob-Subscription
, nazwy obiektów blob utraconych liter będą miećMY-BLOB-SUBSCRIPTION
(myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
). Takie zachowanie polega na ochronie 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 martwe obiekty blob 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żesz włączyć nieużywanie 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 przechowywać zdarzenia z utraconymi literami oraz subskrypcję platformy Azure, która ma magazyn obiektów blob.
Opcjonalnie możesz włączyć tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika na potrzeby martwych listó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żesz również włączyć nieaktywne pismo i skonfigurować ustawienia istniejącej subskrypcji zdarzeń. Na stronie Subskrypcja zdarzeń subskrypcji zdarzeń przejdź na kartę Dodatkowe funkcje , aby wyświetlić ustawienia utraconych wiadomości, 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ć nieaktywne pismo, uruchom ponownie polecenie, aby utworzyć subskrypcję zdarzeń, ale nie podaj wartości .deadletter-endpoint
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ć nieaktywne pismo, uruchom ponownie polecenie, aby utworzyć subskrypcję zdarzeń, ale nie podaj wartości .DeadLetterEndpoint
Nie musisz usuwać subskrypcji zdarzeń.
Uwaga
Jeśli używasz programu Azure Poweshell na komputerze lokalnym, użyj Azure PowerShell w wersji 1.1.0 lub nowszej. Pobierz i zainstaluj najnowsze 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, jak długo usługa Event Grid powinna spróbować dostarczyć zdarzenie. 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żesz również skonfigurować ustawienia zasad ponawiania dla istniejącej subskrypcji zdarzeń. Na stronie Subskrypcja zdarzeń subskrypcji zdarzeń przejdź na kartę 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
W przypadku ustawienia zarówno, jak event-ttl
i max-deliver-attempts
, usługa Event Grid używa 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 się dzieje po raz pierwszy, zdarzenie jest nieaktywne. Jeśli ustawisz maksymalną liczbę prób dostarczenia na 10, w odniesieniu do harmonogramu ponawiania wykładniczego maksymalna liczba prób dostarczenia nastąpi przed upływem 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
W przypadku ustawienia zarówno, jak event-ttl
i max-deliver-attempts
, usługa Event Grid używa 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 się dzieje po raz pierwszy, zdarzenie jest nieaktywne. Jeśli ustawisz maksymalną liczbę prób dostarczenia na 10, w odniesieniu do harmonogramu ponawiania wykładniczego maksymalna liczba prób dostarczenia nastąpi przed upływem 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
- Aby uzyskać przykładową aplikację, która używa aplikacji funkcji platformy Azure do przetwarzania zdarzeń utraconych listów, zobacz Azure Event Grid Przykłady utraconych listów 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 przy użyciu Azure Event Grid.