Mensagens mortas e tentar novas políticasDead letter and retry policies

Ao criar uma assinatura de evento, você pode personalizar as configurações para entrega de eventos.When creating an event subscription, you can customize the settings for event delivery. Este artigo mostra como configurar um local de mensagens mortas e personalizar as configurações de repetição.This article shows you how to set up a dead letter location and customize the retry settings. Para obter informações sobre esses recursos, consulte Entrega e repetição de mensagens da Grade de Eventos.For information about these features, see Event Grid message delivery and retry.

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Defina o local de mensagens mortasSet dead-letter location

Para definir um local de mensagens mortas, é necessário ter uma conta de armazenamento para armazenar eventos que não podem ser entregues a um ponto de extremidade.To set a dead letter location, you need a storage account for holding events that can't be delivered to an endpoint. Os exemplos obtêm a ID de recurso de uma conta de armazenamento existente.The examples get the resource ID of an existing storage account. Eles criam uma assinatura de evento que usa um contêiner na conta de armazenamento para o ponto de extremidade de inatividade.They create an event subscription that uses a container in that storage account for the dead-letter endpoint.

Observação

Crie uma conta de armazenamento e um contêiner de blob no armazenamento antes de executar os comandos neste artigo.Create a storage account and a blob container in the storage before running commands in this article.

CLI do AzureAzure 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

Para desativar a colocação em fila de mensagens mortas, execute novamente o comando para criar a assinatura de evento, mas não forneça um valor para deadletter-endpoint.To turn off dead-lettering, rerun the command to create the event subscription but don't provide a value for deadletter-endpoint. Você não precisa excluir a assinatura do evento.You don't need to delete the event subscription.

Observação

Se você estiver usando a CLI do Azure em seu computador local, use a CLI do Azure versão 2.0.56 ou superior.If you are using Azure CLI on your local machine, use Azure CLI version 2.0.56 or greater. Para obter instruções sobre como instalar a versão mais recente da CLI do Azure, confira Instalar a CLI do Azure.For instructions on installing the latest version of Azure CLI, see Install the Azure CLI.

PowerShellPowerShell

$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"

Para desativar a colocação em fila de mensagens mortas, execute novamente o comando para criar a assinatura de evento, mas não forneça um valor para DeadLetterEndpoint.To turn off dead-lettering, rerun the command to create the event subscription but don't provide a value for DeadLetterEndpoint. Você não precisa excluir a assinatura do evento.You don't need to delete the event subscription.

Observação

Se você estiver usando o Azure PowerShell em seu computador local, use o Azure PowerShell versão 1.1.0 ou superior.If you are using Azure Poweshell on your local machine, use Azure PowerShell version 1.1.0 or greater. Baixe e instale o Azure PowerShell mais recente de Downloads do Azure.Download and install the latest Azure PowerShell from Azure downloads.

Definir a política de repetiçãoSet retry policy

Ao criar uma assinatura de Grade de Eventos, você pode definir valores de por quanto tempo a Grade de Eventos deve tentar entregar o evento.When creating an Event Grid subscription, you can set values for how long Event Grid should try to deliver the event. Por padrão, a Grade de Eventos tenta por 24 horas (1440 minutos) ou 30 vezes.By default, Event Grid tries for 24 hours (1440 minutes), or 30 times. Você pode definir esses valores para a sua assinatura de grade de eventos.You can set either of these values for your event grid subscription. O valor de tempo de vida do evento deve ser um inteiro de 1 a 1440.The value for event time-to-live must be an integer from 1 to 1440. O valor para máximo de tentativas deve ser um inteiro de 1 a 30.The value for max retries must be an integer from 1 to 30.

Não é possível configurar um plano de tentativas.You can't configure the retry schedule.

CLI do AzureAzure CLI

Para definir o evento de vida útil para um valor diferente de 1440 minutos, use:To set the event time-to-live to a value other than 1440 minutes, use:

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

Para definir o máximo de tentativas com um valor diferente de 30, use:To set the max retries to a value other than 30, use:

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

Se você definir ambos event-ttl e max-deliver-attempts, a Grade de Eventos usa o primeiro para expirar, a fim de determinar quando parar a entrega de eventos.If you set both event-ttl and max-deliver-attempts, Event Grid uses the first to expire to determine when to stop event delivery.

PowerShellPowerShell

Para definir o evento de vida útil para um valor diferente de 1440 minutos, use:To set the event time-to-live to a value other than 1440 minutes, use:

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

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

Para definir o máximo de tentativas com um valor diferente de 30, use:To set the max retries to a value other than 30, use:

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

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

Se você definir ambos EventTtl e MaxDeliveryAttempt, a Grade de Eventos usa o primeiro para expirar, a fim de determinar quando parar a entrega de eventos.If you set both EventTtl and MaxDeliveryAttempt, Event Grid uses the first to expire to determine when to stop event delivery.

Próximas etapasNext steps