Delen via


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.

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, hebben MY-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.

Schermopname van de configuratie van een gebeurtenisabonnement met dode letters.

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.

Schermopname van de configuratie van een bestaand gebeurtenisabonnement met een dode letter.

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 .

Schermopname van de beleidsconfiguratie 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 Aanvullende functies om de beleidsinstellingen voor opnieuw proberen weer te geven, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van de beleidsconfiguratie voor opnieuw proberen van een bestaand gebeurtenisabonnement.

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-attemptsEvent 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-attemptsEvent 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