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.

Zrzut ekranu przedstawiający konfigurację nieużywanej subskrypcji zdarzeń.

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.

Zrzut ekranu przedstawiający konfigurację utraconych wiadomości z istniejącej subskrypcji zdarzeń.

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 .

Zrzut ekranu przedstawiający konfigurację zasad ponawiania próby subskrypcji zdarzeń.

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.

Zrzut ekranu przedstawiający konfigurację zasad ponawiania istniejącej subskrypcji zdarzeń.

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