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 dode letters instelt en de instellingen voor opnieuw proberen aanpast. Zie Event Grid-berichtbezorging en nieuwe pogingen voor meer informatie over deze functies.
Notitie
Zie het conceptuele artikel: Event Grid-berichtbezorging en nieuwe pogingen voor meer informatie over het bezorgen van berichten, nieuwe pogingen en het opnieuw verzenden van berichten.
Locatie voor dode letters instellen
Als u een locatie met een dode letter wilt instellen, hebt u een opslagaccount nodig voor het opslaan van gebeurtenissen die niet aan een eindpunt kunnen worden geleverd. In de voorbeelden wordt de resource-id van een bestaand opslagaccount opgeslagen. Ze maken een gebeurtenisabonnement dat gebruikmaakt van een container in dat opslagaccount voor het eindpunt met dode letters.
U moet een opslagaccount en een blobcontainer in de opslag maken voordat u opdrachten uitvoert in dit artikel. Event Grid maakt blobs in deze container. De namen van blobs bevatten de naam van het Event Grid-abonnement met alle letters in hoofdletters. Als de naam van het abonnement bijvoorbeeld is My-Blob-Subscription
, bevatten MY-BLOB-SUBSCRIPTION
namen van de dode letter-blobs (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
). Dit gedrag is om te beschermen tegen verschillen in de verwerking van zaken tussen Azure-services. In het voorbeeld .../2019/8/8/5/...
vertegenwoordigt u de niet-nul opgevulde datum en het uur (UTC): .../YYYY/MM/DD/HH/...
.'. De blobs voor dode letters die zijn gemaakt, bevatten een of meer gebeurtenissen in een matrix. Dit is een belangrijk gedrag waarmee u rekening moet houden bij het verwerken van dode brieven.
Azure Portal
Tijdens het maken van een gebeurtenisabonnement kunt u dead-lettering inschakelen op het tabblad Aanvullende functies , zoals wordt weergegeven in de volgende afbeelding. Nadat u de functie hebt ingeschakeld, geeft u de blobcontainer op waarin gebeurtenissen met dode letters en het Azure-abonnement met de blobopslag zijn opgeslagen.
U kunt eventueel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit inschakelen voor onbestelbare brieven. De beheerde identiteit moet lid zijn van een RBAC-rol (op rollen gebaseerd toegangsbeheer) waarmee gebeurtenissen naar de opslag kunnen worden geschreven.
U kunt ook dead-lettering inschakelen en de instellingen voor een bestaand gebeurtenisabonnement configureren. Ga op de pagina Gebeurtenisabonnement van uw gebeurtenisabonnement naar het tabblad Aanvullende functies om de instellingen voor dode letters te zien, zoals wordt weergegeven in de volgende afbeelding.
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 dead-lettering 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 Azure CLI op uw lokale computer gebruikt, 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 dead-lettering 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 PowerShell 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 hoe lang Event Grid de gebeurtenis moet 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 gebeurtenissen moet een geheel getal van 1 tot 1440 zijn. De waarde voor maximale nieuwe pogingen moet een geheel getal van 1 tot 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 Aanvullende functies .
U kunt ook beleidsinstellingen voor opnieuw proberen configureren voor een bestaand gebeurtenisabonnement. Ga op de pagina Gebeurtenisabonnement van uw gebeurtenisabonnement naar het tabblad Aanvullende functies om de beleidsinstellingen voor opnieuw proberen weer te geven, zoals wordt weergegeven in de volgende afbeelding.
Azure-CLI
Als u de time-to-live-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 beide event-ttl
instelt en max-deliver-attempts
Event Grid de eerste gebruikt om te verlopen 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 na 30 minuten (of) niet wordt bezorgd na vijf pogingen, afhankelijk van wat zich het eerst voordoet, wordt de gebeurtenis in een dode letter weergegeven. Als u maximaal bezorgingspogingen instelt op 10, met betrekking tot het exponentiële schema voor opnieuw proberen, worden maximaal zes bezorgingspogingen uitgevoerd voordat 30 minuten TTL wordt bereikt. Het instellen van het maximum aantal pogingen tot 10 heeft in dit geval geen invloed en gebeurtenissen worden na 30 minuten dood geschreven.
Powershell
Als u de time-to-live-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 beide event-ttl
instelt en max-deliver-attempts
Event Grid de eerste gebruikt om te verlopen 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 na 30 minuten (of) niet wordt bezorgd na vijf pogingen, afhankelijk van wat zich het eerst voordoet, wordt de gebeurtenis in een dode letter weergegeven. Als u maximaal bezorgingspogingen instelt op 10, met betrekking tot het exponentiële schema voor opnieuw proberen, worden maximaal zes bezorgingspogingen uitgevoerd voordat 30 minuten TTL wordt bereikt. Het instellen van het maximum aantal pogingen tot 10 heeft in dit geval geen invloed en gebeurtenissen worden na 30 minuten dood geschreven.
Gerelateerde inhoud
- Zie Azure Event Grid Dead Letter Samples voor .NET voor een voorbeeldtoepassing die gebruikmaakt van een Azure Function-app voor het verwerken van gebeurtenissen met dode letters.
- Voor informatie over het bezorgen en opnieuw proberen van gebeurtenissen, Event Grid-berichtbezorging en het opnieuw proberen.