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 ställer in en plats för dead letter och anpassar inställningarna för återförsök. Information om dessa funktioner finns i Event Grid leverans av meddelanden och försök igen.

Anteckning

I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Anteckning

Mer information om leverans av meddelanden, återförsök och dead-lettering finns i den konceptuella artikeln: skicka Event Grid och försök igen.

Ange plats för dead-letter

Om du vill ange en plats för en oställd bokstav 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 med obokstav.

Anteckning

  • Skapa ett lagringskonto och en blobcontainer i lagringen innan du kör kommandon i den här artikeln.
  • Tjänsten Event Grid skapar blobar i den här containern. Namnen på blobar får namnet på prenumerationen Event Grid med alla bokstäver i versaler. Om namnet på prenumerationen till exempel är My-Blob-Subscription får namnen på de obeskrivta blobarna MY-BLOB-SUBSCRIPTION (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json). Det här beteendet är för att skydda mot skillnader i ärendehantering mellan Azure-tjänster.

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 dead-lettering kör du kommandot igen för att skapa händelseprenumerationen men anger 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 dead-lettering kör du kommandot igen för att skapa händelseprenumerationen men anger 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.

Ange återförsöksprincip

När du skapar Event Grid prenumeration kan du ange värden för hur länge Event Grid ska försöka leverera händelsen. Som standard Event Grid 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 från 1 till 1440. Värdet för maximalt antal återförsök måste vara ett heltal från 1 till 30.

Du kan inte konfigurera schemat för återförsök.

Azure CLI

Om du vill ställa in time to live för 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 max antal å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 och Event Grid den första för event-ttl max-deliver-attempts att avgöra när händelseleveransen ska stoppas. Om du till exempel ställer in 30 minuter som TTL (Time To Live) och 10 maximala leveransförsök. När en händelse inte levereras efter 30 minuter (eller) inte levereras efter 10 försök, beroende på vilket som inträffar först, kommer händelsen att skickas utan bokstav.

PowerShell

Om du vill ställa in time to live för 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 max antal å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 och Event Grid den första för event-ttl max-deliver-attempts att avgöra när händelseleveransen ska stoppas. Om du till exempel ställer in 30 minuter som TTL (Time To Live) och 10 maximala leveransförsök. När en händelse inte levereras efter 30 minuter (eller) inte levereras efter 10 försök, beroende på vilket som inträffar först, kommer händelsen att skickas utan bokstav.

Nästa steg