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-Subscription
MY-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.
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.
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 .
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.
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-attempts
instelt, 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-attempts
instelt, 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
- Zie Azure Event Grid Dead Letter Samples for .NET (Voorbeelden van onbestelbare brieven voor .NET) voor een voorbeeldtoepassing die gebruikmaakt van een Azure Function-app voor het verwerken van gebeurtenissen in onbestelbare berichten.
- Voor informatie over het bezorgen en opnieuw proberen van gebeurtenissen kunt u event Grid-berichten bezorgen en 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.