Konfigurera plats för obeställbara meddelanden och återförsöksprincip

När du skapar en händelseprenumeration kan du anpassa inställningarna för händelseleverans. Den här artikeln visar hur du konfigurerar en obeställd plats och anpassar inställningarna för återförsök. Information om dessa funktioner finns i Leverans av Event Grid-meddelanden och försök igen.

Anteckning

Mer information om leverans av meddelanden, återförsök och obeställbara meddelanden finns i den konceptuella artikeln: Leverans av Event Grid-meddelanden och återförsök.

Ange obeställbara platser

Om du vill ange en obeställd plats behöver du ett lagringskonto för att lagra händelser som inte kan levereras till en slutpunkt. Exemplen hämtar resurs-ID:t för ett befintligt lagringskonto. De skapar en händelseprenumeration som använder en container i lagringskontot för slutpunkten för obeställbara meddelanden.

Anteckning

  • Skapa ett lagringskonto och en blobcontainer i lagringen innan du kör kommandon i den här artikeln.
  • Event Grid-tjänsten skapar blobar i den här containern. Namnen på blobar har namnet på Event Grid-prenumerationen med alla bokstäver i versaler. Om namnet på prenumerationen till exempel är My-Blob-Subscriptionhar namnen på blobbarna MY-BLOB-SUBSCRIPTION med obeställbara bokstäver (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json). Det här beteendet är att skydda mot skillnader i ärendehantering mellan Azure-tjänster.
  • I exemplet .../2019/8/8/5/... ovan representerar det icke-noll vadderade datumet och timmen (UTC): .../YYYY/MM/DD/HH/....
  • De blobar med obeställbara bokstäver som skapas innehåller en eller flera händelser i en matris, vilket är ett viktigt beteende att tänka på när du bearbetar obeställbara bokstäver.

Azure Portal

När du skapar en händelseprenumeration kan du aktivera obeställbara meddelanden på fliken Ytterligare funktioner enligt följande bild. När du har aktiverat funktionen anger du den blobcontainer som ska innehålla händelser med obeställbara meddelanden och den Azure-prenumeration som har bloblagringen.

Du kan också aktivera en systemtilldelad eller användartilldelad hanterad identitet för obeställbara meddelanden. Den hanterade identiteten måste vara medlem i en rollbaserad åtkomstkontroll (RBAC) som gör det möjligt att skriva händelser till lagringen.

Skärmbild som visar konfiguration av obeställbara meddelanden för en händelseprenumeration.

Du kan också aktivera obeställbara meddelanden och konfigurera inställningarna för en befintlig händelseprenumeration. På sidan Händelseprenumeration i din händelseprenumeration växlar du till fliken Ytterligare funktioner för att se inställningarna för obeställbara meddelanden enligt följande bild.

Skärmbild som visar konfiguration av obeställbara meddelanden för en befintlig händelseprenumeration.

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

Om du vill inaktivera obeställbara meddelanden kör du kommandot igen för att skapa händelseprenumerationen, men ange inget värde för deadletter-endpoint. Du behöver inte ta bort händelseprenumerationen.

Anteckning

Om du använder Azure CLI på din lokala dator ska du använda Azure CLI version 2.0.56 eller större. Anvisningar om hur du installerar den senaste versionen av Azure CLI finns i Installera 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"

Om du vill inaktivera obeställbara meddelanden kör du kommandot igen för att skapa händelseprenumerationen, men ange inget värde för DeadLetterEndpoint. Du behöver inte ta bort händelseprenumerationen.

Anteckning

Om du använder Azure Poweshell på den lokala datorn använder du Azure PowerShell version 1.1.0 eller senare. Ladda ned och installera den senaste Azure PowerShell från Azure-nedladdningar.

Ange återförsöksprincip

När du skapar en Event Grid-prenumeration kan du ange värden för hur länge Event Grid ska försöka leverera händelsen. Som standard försöker Event Grid i 24 timmar (1 440 minuter) eller 30 gånger. Du kan ange något av dessa värden för din Event Grid-prenumeration. Värdet för time to live-händelser måste vara ett heltal mellan 1 och 1440. Värdet för maximalt antal återförsök måste vara ett heltal mellan 1 och 30.

Du kan inte konfigurera återförsöksschemat.

Azure Portal

När du skapar en händelseprenumeration kan du konfigurera principinställningar för återförsök på fliken Ytterligare funktioner .

Skärmbild som visar konfigurationen av återförsöksprincipen för en händelseprenumeration.

Du kan också konfigurera principinställningar för återförsök för en befintlig händelseprenumeration. På sidan Händelseprenumeration i din händelseprenumeration växlar du till fliken Ytterligare funktioner för att se principinställningarna för återförsök enligt följande bild.

Skärmbild som visar konfigurationen av återförsöksprincipen för en befintlig händelseprenumeration.

Azure CLI

Om du vill ställa in time to live-händelsen till ett annat värde än 1 440 minuter använder du:

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

Om du vill ange det maximala antalet återförsök till ett annat värde än 30 använder du:

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

Anteckning

Om du anger både event-ttl och max-deliver-attemptsanvänder Event Grid den första för att förfalla för att avgöra när händelseleveransen ska stoppas. Om du till exempel anger 30 minuter som TTL (Time To Live) och 5 maximala leveransförsök. När en händelse inte levereras efter 30 minuter (eller) inte levereras efter 5 försök, beroende på vilket som inträffar först, är händelsen obeställd. Om du anger maximalt antal leveransförsök till 10, med avseende på exponentiellt återförsöksschema, kommer maximalt 6 antal leveransförsök att ske innan 30 minuter TTL uppnås, vilket innebär att det maximala antalet försök till 10 inte påverkas i det här fallet och händelser kommer att vara obeställbara efter 30 minuter.

PowerShell

Om du vill ställa in time to live-händelsen till ett annat värde än 1 440 minuter använder du:

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

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

Om du vill ange det maximala antalet återförsök till ett annat värde än 30 använder du:

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

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

Anteckning

Om du anger både event-ttl och max-deliver-attemptsanvänder Event Grid den första för att förfalla för att avgöra när händelseleveransen ska stoppas. Om du till exempel anger 30 minuter som TTL (Time To Live) och 5 maximala leveransförsök. När en händelse inte levereras efter 30 minuter (eller) inte levereras efter 5 försök, beroende på vilket som inträffar först, är händelsen obeställd. Om du anger maximalt antal leveransförsök till 10, med avseende på exponentiellt återförsöksschema, kommer maximalt 6 antal leveransförsök att ske innan 30 minuter TTL uppnås, vilket innebär att det maximala antalet försök till 10 inte påverkas i det här fallet och händelser kommer att vara obeställbara efter 30 minuter.

Nästa steg