Locatie van onbestelbare letters en beleid voor opnieuw proberen instellen

Wanneer u een gebeurtenisabonnement maakt, kunt u de instellingen voor de levering van gebeurtenissen aanpassen. In dit artikel leest u hoe u een locatie voor onbestelbare berichten instelt en de instellingen voor opnieuw proberen aanpast. Zie Voor meer informatie over deze functies , Event Grid-berichtbezorging en opnieuw proberen.

Notitie

Zie het conceptuele artikel Bezorging en opnieuw proberen van Berichten in Event Grid voor meer informatie over de bezorging van berichten, nieuwe pogingen en onbestelbare berichten.

Locatie voor onbestelbare berichten instellen

Als u een locatie voor onbestelbare berichten wilt instellen, hebt u een opslagaccount nodig voor het bewaren van gebeurtenissen die niet aan een eindpunt kunnen worden geleverd. In de voorbeelden wordt de resource-id van een bestaand opslagaccount opgehaald. Ze maken een gebeurtenisabonnement dat gebruikmaakt van een container in dat opslagaccount voor het onbestelbare eindpunt.

Notitie

  • Maak een opslagaccount en een blobcontainer in de opslag voordat u de opdrachten in dit artikel uitvoert.
  • De Event Grid-service maakt blobs in deze container. De namen van blobs hebben de naam van het Event Grid-abonnement met alle letters in hoofdletters. Als de naam van het abonnement bijvoorbeeld is, hebben My-Blob-SubscriptionMY-BLOB-SUBSCRIPTION de namen van de dead letter-blobs (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json). Dit gedrag is bedoeld om u te beschermen tegen verschillen in de afhandeling van case tussen Azure-services.
  • In het bovenstaande voorbeeld .../2019/8/8/5/... vertegenwoordigt u de niet-nul opgevulde datum en -uur (UTC): .../YYYY/MM/DD/HH/....'
  • De blobs met dode letters die worden gemaakt, bevatten een of meer gebeurtenissen in een matrix. Dit is een belangrijk gedrag waarmee rekening moet worden gehouden bij het verwerken van dode letters.

Azure Portal

Tijdens het maken van een gebeurtenisabonnement kunt u onbestelbare berichten inschakelen op het tabblad Extra functies , zoals wordt weergegeven in de volgende afbeelding. Nadat u de functie hebt ingeschakeld, geeft u de blobcontainer op waarin gebeurtenissen met onbestelbare berichten worden opgeslagen en het Azure-abonnement met de blobopslag.

U kunt eventueel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit inschakelen voor onbestelbare letters. De beheerde identiteit moet lid zijn van een RBAC-rol (op rollen gebaseerd toegangsbeheer) waarmee gebeurtenissen naar de opslag kunnen worden geschreven.

Schermopname van de configuratie van een gebeurtenisabonnement in onbestelbare letters.

U kunt ook onbestelbare berichten inschakelen en de instellingen voor een bestaand gebeurtenisabonnement configureren. Ga op de pagina Gebeurtenisabonnement van uw gebeurtenisabonnement naar het tabblad Extra functies om de instellingen voor onbestelbare berichten weer te geven, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van de configuratie van een bestaand gebeurtenisabonnement met onbestelbare letters.

Azure CLI

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

Als u onbestelbare berichten wilt uitschakelen, voert u de opdracht opnieuw uit om het gebeurtenisabonnement te maken, maar geeft u geen waarde op voor deadletter-endpoint. U hoeft het gebeurtenisabonnement niet te verwijderen.

Notitie

Als u werkt met Azure CLI op uw lokale computer, gebruikt u Azure CLI versie 2.0.56 of hoger. Zie De Azure CLI installeren voor instructies over het installeren van de meest recente versie van Azure CLI.

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"

Als u onbestelbare berichten wilt uitschakelen, voert u de opdracht opnieuw uit om het gebeurtenisabonnement te maken, maar geeft u geen waarde op voor DeadLetterEndpoint. U hoeft het gebeurtenisabonnement niet te verwijderen.

Notitie

Als u Azure Poweshell op uw lokale computer gebruikt, gebruikt u Azure PowerShell versie 1.1.0 of hoger. Download en installeer de nieuwste Azure PowerShell via Azure-downloads.

Beleid voor opnieuw proberen instellen

Wanneer u een Event Grid-abonnement maakt, kunt u waarden instellen voor hoelang Event Grid moet proberen de gebeurtenis te leveren. Event Grid probeert standaard 24 uur (1440 minuten) of 30 keer. U kunt een van deze waarden instellen voor uw Event Grid-abonnement. De waarde voor time-to-live van de gebeurtenis moet een geheel getal zijn tussen 1 en 1440. De waarde voor het maximum aantal nieuwe pogingen moet een geheel getal tussen 1 en 30 zijn.

U kunt het schema voor opnieuw proberen niet configureren.

Azure Portal

Tijdens het maken van een gebeurtenisabonnement kunt u beleidsinstellingen voor opnieuw proberen configureren op het tabblad Extra functies .

Schermopname van de configuratie van het beleid voor opnieuw proberen van een gebeurtenisabonnement.

U kunt ook beleidsinstellingen voor opnieuw proberen configureren voor een bestaand gebeurtenisabonnement. Ga op de pagina Gebeurtenisabonnement van uw gebeurtenisabonnement naar het tabblad Extra functies om de beleidsinstellingen voor opnieuw proberen weer te geven, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van de configuratie van het beleid voor opnieuw proberen van een bestaand gebeurtenisabonnement.

Azure CLI

Als u de time-to-live van de gebeurtenis wilt instellen op een andere waarde dan 1440 minuten, gebruikt u:

az eventgrid event-subscription create \
  -g gridResourceGroup \
  --topic-name <topic_name> \
  --name <event_subscription_name> \
  --endpoint <endpoint_URL> \
  --event-ttl 720

Als u het maximum aantal nieuwe pogingen wilt instellen op een andere waarde dan 30, gebruikt u:

az eventgrid event-subscription create \
  -g gridResourceGroup \
  --topic-name <topic_name> \
  --name <event_subscription_name> \
  --endpoint <endpoint_URL> \
  --max-delivery-attempts 18

Notitie

Als u zowel event-ttl als max-deliver-attemptsinstelt, gebruikt Event Grid de eerste om te bepalen wanneer de levering van gebeurtenissen moet worden gestopt. Als u bijvoorbeeld 30 minuten instelt als time-to-live (TTL) en 5 maximale bezorgingspogingen. Wanneer een gebeurtenis niet na 30 minuten (of) niet wordt geleverd na 5 pogingen, afhankelijk van wat zich het eerst voordoet, is de gebeurtenis onbestelbaar. Als u het maximum aantal bezorgingspogingen instelt op 10, met betrekking tot het exponentiële schema voor opnieuw proberen, worden maximaal 6 bezorgingspogingen uitgevoerd voordat 30 minuten TTL wordt bereikt. Daarom heeft het instellen van het maximum aantal pogingen op 10 in dit geval geen invloed en worden gebeurtenissen na 30 minuten vastgelopen.

PowerShell

Als u de time-to-live van de gebeurtenis wilt instellen op een andere waarde dan 1440 minuten, gebruikt u:

$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id

New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint <endpoint_URL> `
  -EventTtl 720

Als u het maximum aantal nieuwe pogingen wilt instellen op een andere waarde dan 30, gebruikt u:

$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id

New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint <endpoint_URL> `
  -MaxDeliveryAttempt 18

Notitie

Als u zowel event-ttl als max-deliver-attemptsinstelt, gebruikt Event Grid de eerste om te bepalen wanneer de levering van gebeurtenissen moet worden gestopt. Als u bijvoorbeeld 30 minuten instelt als time-to-live (TTL) en 5 maximale bezorgingspogingen. Wanneer een gebeurtenis niet na 30 minuten (of) niet wordt geleverd na 5 pogingen, afhankelijk van wat zich het eerst voordoet, is de gebeurtenis onbestelbaar. Als u het maximum aantal bezorgingspogingen instelt op 10, met betrekking tot het exponentiële schema voor opnieuw proberen, worden maximaal 6 bezorgingspogingen uitgevoerd voordat 30 minuten TTL wordt bereikt. Daarom heeft het instellen van het maximum aantal pogingen op 10 in dit geval geen invloed en worden gebeurtenissen na 30 minuten vastgelopen.

Volgende stappen