Sdílet prostřednictvím


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 dopisů a přizpůsobit nastavení opakování. Informace o těchtofunkcích

Poznámka:

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í zpráv event Gridu a opakování.

Nastavení umístění nedoručených dopisů

Pokud chcete nastavit umístění nedoručených dopisů, 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 koncový bod nedoručených písmen.

Před spuštěním příkazů v tomto článku musíte v úložišti vytvořit účet úložiště a kontejner objektů blob. Event Grid vytváří objekty blob v tomto kontejneru. Názvy objektů blob obsahují 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 objektů blob nedoručených písmen obsahují MY-BLOB-SUBSCRIPTION (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json). Toto chování je chránit před rozdíly v případě zpracování služeb Azure. V příkladu .../2019/8/8/5/... představuje nenulové datum a hodinu (UTC): .../YYYY/MM/DD/HH/....'. Vytvořené objekty blob nedoručených písmen obsahují jednu nebo více událostí v poli, což je důležité chování při zpracování neaktivních písmen.

portál Azure

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

Volitelně můžete povolit spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro nedoručované dopisy. 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ých dopisů odběru událostí

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

Snímek obrazovky znázorňující konfiguraci nedoručených písmen stávající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, spusťte příkaz znovu a vytvořte odběr události, ale nezadávejte hodnotu .deadletter-endpoint Odběr událostí nemusíte odstraňovat.

Poznámka:

Pokud používáte Azure CLI na místním počítači, použijte Azure CLI verze 2.0.56 nebo novější. 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, spusťte příkaz znovu a vytvořte odběr události, ale nezadávejte hodnotu .DeadLetterEndpoint Odběr událostí nemusíte odstraňovat.

Poznámka:

Pokud používáte Azure PowerShell na místním počítači, použijte Azure PowerShell verze 1.1.0 nebo novější. Stáhněte a nainstalujte nejnovější Azure PowerShell ze stažených souborů Azure.

Nastavení zásad opakování

Při vytváření odběru služby Event Grid můžete nastavit hodnoty, jak dlouho se má Event Grid pokusit událost doručit. Ve výchozím nastavení se Event Grid pokusí o 24 hodin (1 440 minut) nebo 30krát. Pro odběr Event Gridu můžete nastavit některou z těchto hodnot. Hodnota pro čas na živé 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í nelze 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 stávající odběr událostí. Na stránce Odběr událostí předplatného události přepněte na kartu Další funkce a zobrazte 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 obě event-ttl a max-deliver-attempts, Event Grid použije první k vypršení platnosti k určení, kdy zastavit doručování událostí. 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čí po 30 minutách (nebo) nedoručí po pěti pokusech, podle toho, co nastane dříve, událost je nedoručovaná. Pokud nastavíte maximální počet pokusů o doručení na 10, pokud jde o plán exponenciálního opakování, dojde k maximálnímu počtu pokusů o doručení před 30 minutami TTL, takže nastavení maximálního počtu pokusů na 10 nebude mít v tomto případě žádný vliv a události budou po 30 minutách nedoručené.

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 obě event-ttl a max-deliver-attempts, Event Grid použije první k vypršení platnosti k určení, kdy zastavit doručování událostí. 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čí po 30 minutách (nebo) nedoručí po pěti pokusech, podle toho, co nastane dříve, událost je nedoručovaná. Pokud nastavíte maximální počet pokusů o doručení na 10, pokud jde o plán exponenciálního opakování, dojde k maximálnímu počtu pokusů o doručení před 30 minutami TTL, takže nastavení maximálního počtu pokusů na 10 nebude mít v tomto případě žádný vliv a události budou po 30 minutách nedoručené.