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.
Notitie
- Maak een opslagaccount en een blobcontainer in de opslag voordat u 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
My-Blob-Subscription
, hebbenMY-BLOB-SUBSCRIPTION
namen van de blobs met dode letters (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 bovenstaande voorbeeld
.../2019/8/8/5/...
wordt de niet-nul opgevulde datum en het uur (UTC):.../YYYY/MM/DD/HH/...
.' - De gemaakte dode letter-blobs 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 die dode gebeurtenissen en het Azure-abonnement met de blobopslag bevat.
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 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 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 5 pogingen, afhankelijk van wat zich het eerst voordoet, wordt de gebeurtenis in een dode letter weergegeven. Als u maximaal aantal bezorgingspogingen instelt op 10, met betrekking tot het schema voor exponentieel opnieuw proberen, worden maximaal 6 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 doodgeletterd.
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 5 pogingen, afhankelijk van wat zich het eerst voordoet, wordt de gebeurtenis in een dode letter weergegeven. Als u maximaal aantal bezorgingspogingen instelt op 10, met betrekking tot het schema voor exponentieel opnieuw proberen, worden maximaal 6 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 doodgeletterd.
Volgende stappen
- 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.
- Zie Een inleiding tot Event Grid voor een inleiding tot Event Grid.
- Zie Aangepaste gebeurtenissen maken en routeren met Azure Event Grid om snel aan de slag te gaan met Event Grid.