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-Subscription
har namnen på blobbarnaMY-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.
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.
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 .
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.
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-attempts
anvä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-attempts
anvä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
- Ett exempelprogram som använder en Azure-funktionsapp för att bearbeta obeställbara händelser finns i Azure Event Grid Exempel på obeställbara meddelanden för .NET.
- Information om händelseleverans och återförsök finns i Leverans av Event Grid-meddelanden och återförsök.
- En introduktion till Event Grid finns i Om Event Grid.
- Information om hur du snabbt kommer igång med Event Grid finns i Skapa och dirigera anpassade händelser med Azure Event Grid.