Nastavení umístění pro nedoručené zprávy a zásady opakování

Při vytváření odběru událostí můžete přizpůsobit nastavení pro doručování událostí. V tomto článku se dozvíte, jak nastavit umístění nedoručených oznámení a přizpůsobit nastavení opakování. Informace o těchto funkcích najdete v tématu Doručování a opakování zpráv ve službě Event Grid.

Poznámka

Další informace o doručování zpráv, opakovaných pokusech a nedoručených zprávách najdete v koncepčním článku : Doručování a opakování zpráv ve službě Event Grid.

Nastavení umístění nedoručených oznámení

K nastavení umístění nedoručených oznámení potřebujete účet úložiště pro uchovávání událostí, které se nedají doručit do koncového bodu. Příklady získají ID prostředku existujícího účtu úložiště. Vytvoří odběr událostí, který používá kontejner v daném účtu úložiště pro nedoručovaný koncový bod.

Poznámka

  • Před spuštěním příkazů v tomto článku vytvořte v úložišti účet úložiště a kontejner objektů blob.
  • Služba Event Grid vytvoří v tomto kontejneru objekty blob. Názvy objektů blob budou obsahovat název odběru Event Gridu se všemi písmeny velkými písmeny. Pokud je My-Blob-Subscriptionnapříklad název předplatného , názvy nedoručených objektů blob budou obsahovat MY-BLOB-SUBSCRIPTION (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json). Toto chování slouží k ochraně před rozdíly ve zpracování případů mezi službami Azure.
  • Ve výše uvedeném příkladu .../2019/8/8/5/... představuje nenulové polstrované datum a hodinu (UTC): .../YYYY/MM/DD/HH/....
  • Vytvořené nedoručených objektů blob budou obsahovat jednu nebo více událostí v poli, což je důležité chování, které je třeba při zpracování nedoručených písmen zvážit.

portál Azure

Při vytváření odběru událostí můžete povolit nedoručených oznámení na kartě Další funkce , jak je znázorněno na následujícím obrázku. Po povolení funkce zadejte kontejner objektů blob, který bude obsahovat nedoručené události, a předplatné Azure s úložištěm objektů blob.

Volitelně můžete povolit systémově přiřazenou spravovanou identitu nebo identitu přiřazenou uživatelem pro nedoručených dopisů. Spravovaná identita musí být členem role řízení přístupu na základě role (RBAC), která umožňuje zápis událostí do úložiště.

Snímek obrazovky znázorňující konfiguraci nedoručeného odběru událostí

Můžete také povolit nedoručených oznámení a nakonfigurovat nastavení pro existující odběr událostí. Na stránce Odběr událostí vašeho odběru událostí přepněte na kartu Další funkce , abyste viděli nastavení nedoručeného oznámení, jak je znázorněno na následujícím obrázku.

Snímek obrazovky znázorňující konfiguraci nedoručeného odběru událostí

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

Pokud chcete funkci nedoručených dopisů vypnout, znovu spusťte příkaz , který vytvoří odběr události, ale nezadá hodnotu pro deadletter-endpoint. Odběr událostí nemusíte odstraňovat.

Poznámka

Pokud na místním počítači používáte Azure CLI, použijte Azure CLI verze 2.0.56 nebo vyšší. Pokyny k instalaci nejnovější verze Azure CLI najdete v tématu Instalace 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"

Pokud chcete funkci nedoručených dopisů vypnout, znovu spusťte příkaz , který vytvoří odběr události, ale nezadá hodnotu pro DeadLetterEndpoint. Odběr událostí nemusíte odstraňovat.

Poznámka

Pokud na místním počítači používáte Azure Poweshell, použijte Azure PowerShell verze 1.1.0 nebo vyšší. Stáhněte a nainstalujte nejnovější Azure PowerShell ze služby Azure ke stažení.

Nastavení zásad opakování

Při vytváření odběru Event Gridu můžete nastavit hodnoty, jak dlouho se má Event Grid pokusit událost doručit. Ve výchozím nastavení se Event Grid pokouší 24 hodin (1440 minut) nebo 30krát. Kteroukoli z těchto hodnot můžete nastavit pro svůj odběr Event Gridu. Hodnota time-to-live události musí být celé číslo od 1 do 1440. Hodnota maximálního počtu opakování musí být celé číslo od 1 do 30.

Plán opakování se nedá nakonfigurovat.

portál Azure

Při vytváření odběru událostí můžete nakonfigurovat nastavení zásad opakování na kartě Další funkce .

Snímek obrazovky znázorňující konfiguraci zásad opakování odběru událostí

Můžete také nakonfigurovat nastavení zásad opakování pro existující odběr událostí. Na stránce Odběr událostí vašeho odběru událostí přepněte na kartu Další funkce , kde se zobrazí nastavení zásad opakování, jak je znázorněno na následujícím obrázku.

Snímek obrazovky znázorňující konfiguraci zásad opakování existujícího odběru událostí

Azure CLI

Pokud chcete nastavit hodnotu Time-to-Live události na jinou hodnotu než 1440 minut, použijte:

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

Pokud chcete nastavit maximální počet opakování na jinou hodnotu než 30, použijte:

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

Poznámka

Pokud nastavíte i event-ttlmax-deliver-attempts, Služba Event Grid použije k určení, kdy se má zastavit doručování událostí, k vypršení platnosti první. Pokud například nastavíte 30 minut jako hodnotu TTL (Time to Live) a 5 maximálních pokusů o doručení. Pokud se událost nedoručí ani po 30 minutách nebo se nedoručí ani po 5 pokusech (podle toho, co nastane dříve), událost se nedoručí. Pokud nastavíte maximální počet pokusů o doručení na 10, s ohledem na plán exponenciálních opakování dojde k maximálnímu počtu pokusů o doručení před dosažením hodnoty TTL 30 minut, takže nastavení maximálního počtu pokusů na 10 v tomto případě nebude mít žádný vliv a události budou nedoručené po 30 minutách.

PowerShell

Pokud chcete nastavit hodnotu Time-to-Live události na jinou hodnotu než 1440 minut, použijte:

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

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

Pokud chcete nastavit maximální počet opakování na jinou hodnotu než 30, použijte:

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

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

Poznámka

Pokud nastavíte i event-ttlmax-deliver-attempts, Služba Event Grid použije k určení, kdy se má zastavit doručování událostí, k vypršení platnosti první. Pokud například nastavíte 30 minut jako hodnotu TTL (Time to Live) a 5 maximálních pokusů o doručení. Pokud se událost nedoručí ani po 30 minutách nebo se nedoručí ani po 5 pokusech (podle toho, co nastane dříve), událost se nedoručí. Pokud nastavíte maximální počet pokusů o doručení na 10, s ohledem na plán exponenciálních opakování dojde k maximálnímu počtu pokusů o doručení před dosažením hodnoty TTL 30 minut, takže nastavení maximálního počtu pokusů na 10 v tomto případě nebude mít žádný vliv a události budou nedoručené po 30 minutách.

Další kroky