Compartilhar via


Propriedades de entrega personalizadas

As assinaturas de evento permitem que você configure cabeçalhos HTTP que estão incluídos nos eventos entregues. Essa funcionalidade permite que você defina cabeçalhos personalizados que são exigidos por um destino. Você pode configurar até dez cabeçalhos ao criar uma assinatura de evento. Cada valor de cabeçalho não deve ser maior que 4.096 (4K) bytes.

Você pode definir os cabeçalhos personalizados nos eventos que são entregues aos seguintes destinos:

  • Webhooks
  • Tópicos e filas do Barramento de Serviço do Azure
  • Hubs de eventos do Azure
  • Funções do Azure
  • Conexões Híbridas da Retransmissão do Azure

Ao criar uma assinatura de evento no portal do Azure, você pode usar a guia Propriedades de entrega para definir cabeçalhos HTTP personalizados. Esta página permite que você defina valores de cabeçalho fixos e dinâmicos.

Definir valores de cabeçalho estáticos

Para definir cabeçalhos com um valor fixo, informe o nome do cabeçalho e seu valor nos campos correspondentes:

Delivery properties - static

Talvez você queira verificar É segredo? ao seus informar dados confidenciais. A visibilidade dos dados confidenciais no portal do Azure depende da permissão RBAC do usuário.

Definir valores de cabeçalho dinâmicos

Você pode definir o valor de um cabeçalho com base em uma propriedade em um evento de entrada. Use a sintaxe JsonPath para fazer referência a um valor da propriedade do evento de entrada a ser usado como o valor de um cabeçalho em solicitações de saída. Só há suporte para valores JSON de cadeia de caracteres, número e booliano. Por exemplo, para definir o valor de um cabeçalho chamado Canal usando o valor do sistema de propriedades de evento de entrada nos dados do evento, configure sua assinatura de evento da seguinte maneira:

Delivery properties - dynamic

Usar a CLI do Azure

Use o parâmetro --delivery-attribute-mapping ao criar a assinatura por meio do comando az eventgrid event-subscription create. Veja um exemplo:

az eventgrid event-subscription create -n es1 \
    --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1
    --endpoint-type storagequeue \
    --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.Storage/storageAccounts/sa1/queueservices/default/queues/q1 \
    --enable-advanced-filtering-on-arrays true
    --delivery-attribute-mapping staticproperty1 static somestaticvalue2 true 
    --delivery-attribute-mapping staticproperty2 static somestaticvalue3 false 
    --delivery-attribute-mapping dynamicproperty1 dynamic data.key1

Exemplos

Esta seção apresenta alguns exemplos de como usar as propriedades de entrega.

Configurando o cabeçalho de autorização com um token de portador (exemplo não normativo)

Defina um valor para um cabeçalho de autorização para identificar a solicitação com o manipulador de webhook. Um cabeçalho de autorização poderá ser definido se você não estiver protegendo o webhook com o Microsoft Entra ID.

Nome do cabeçalho Tipo de cabeçalho Valor do cabeçalho
Authorization Estático BEARER SlAV32hkKG...

As solicitações de saída agora devem conter o cabeçalho definido na assinatura do evento:

POST /home.html HTTP/1.1
Host: acme.com

Authorization: BEARER SlAV32hkKG...

Observação

Definir cabeçalhos de autorização é uma opção sensata quando o destino é um webhook. Ele não deve ser usado para funções assinadas com uma ID de recurso, Barramento de Serviço, Hubs de Eventos e conexões híbridas, pois esses destinos permitem seus próprios esquemas de autenticação quando usados com a Grade de Eventos.

Exemplo de Barramento de Serviço

O Barramento de Serviço do Azure permite o uso das seguintes propriedades de mensagem ao enviar mensagens individuais.

Nome do cabeçalho Tipo de cabeçalho
MessageId Dinâmico
PartitionKey Estático ou dinâmico
SessionId Estático ou dinâmico
CorrelationId Estático ou dinâmico
Label Estático ou dinâmico
ReplyTo Estático ou dinâmico
ReplyToSessionId Estático ou dinâmico
To Estático ou dinâmico
ViaPartitionKey Estático ou dinâmico

Observação

  • O valor padrão de MessageId é a ID interna do evento da Grade de Eventos. Você pode substituí-lo. Por exemplo, data.field.
  • Você só pode definir SessionId ou MessageId.

Você também pode especificar propriedades personalizadas ao enviar mensagens para filas ou tópicos do Barramento de Serviço. Não use o prefixo aeg-, pois ele é usado pelas propriedades do sistema em cabeçalhos de mensagens. Para ver uma lista de propriedades do cabeçalho de mensagem, confira Barramento de Serviço como um manipulador de eventos

Exemplo de Hubs de Eventos

Se você precisar publicar eventos em uma partição específica dentro de um hub de eventos, defina a propriedade PartitionKey na sua assinatura de evento para especificar a chave de partição que identifica a partição do hub de eventos de destino.

Nome do cabeçalho Tipo de cabeçalho
PartitionKey Estático ou dinâmico

Você também pode especificar propriedades personalizadas ao enviar mensagens para um hub de eventos. Não use o prefixo aeg- para o nome da propriedade, pois ele é usado pelas propriedades do sistema em cabeçalhos de mensagens. Para ver uma lista das propriedades do cabeçalho de mensagem, confira Hubs de Eventos como um manipulador de eventos

Configurar a vida útil em eventos de saída para filas do Armazenamento do Microsoft Azure

Para o destino das filas do Armazenamento do Microsoft Azure, você só pode configurar o tempo de vida que a mensagem de saída terá depois de ser entregue a uma fila do Armazenamento do Microsoft Azure. Se nenhum tempo for fornecido, a vida útil padrão da mensagem será de 7 dias. Você também pode definir que o evento nunca deve expirar.

Delivery properties - storage queue

Próximas etapas

Para obter mais informações sobre essa entrega, confira o seguinte artigo: