Propriedades de entrega personalizadas

As subscrições de eventos permitem-lhe configurar cabeçalhos HTTP incluídos em eventos entregues. Esse recurso permite que você defina cabeçalhos personalizados que são exigidos por um destino. Você pode configurar até 10 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 cabeçalhos personalizados nos eventos que são entregues nos seguintes destinos:

  • Webhooks
  • Tópicos e filas do Barramento de Serviço do Azure
  • Hubs de Eventos do Azure
  • Funções do Azure
  • Azure Relay Hybrid Connections

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 definir valores de cabeçalho fixos e dinâmicos.

Definindo valores de cabeçalho estático

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

Delivery properties - static

Você pode querer verificar É secreto? quando você está fornecendo dados confidenciais. A visibilidade de dados confidenciais no portal do Azure depende da permissão RBAC do usuário.

Definição de 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 se referir ao valor da propriedade de um evento de entrada a ser usado como o valor de um cabeçalho em solicitações de saída. Somente valores JSON de string, number e boolean são suportados. Por exemplo, para definir o valor de um cabeçalho chamado Channel 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

Utilizar a CLI do Azure

Use o parâmetro ao criar uma assinatura usando o --delivery-attribute-mappingaz eventgrid event-subscription create comando. Eis 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 fornece alguns exemplos de uso de propriedades de entrega.

Definindo o cabeçalho Authorization com um token de portador (exemplo não normativo)

Defina um valor como um cabeçalho Authorization para identificar a solicitação com seu manipulador Webhook. Um cabeçalho de Autorização pode ser definido se você não estiver protegendo seu 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...

Nota

Definir cabeçalhos de autorização é uma opção sensata quando seu destino é um Webhook. Ele não deve ser usado para funções inscritas com uma ID de recurso, Service Bus, Hubs de Eventos e Conexões Híbridas, pois esses destinos oferecem suporte a seus próprios esquemas de autenticação quando usados com a Grade de Eventos.

Exemplo do Service Bus

O Barramento de Serviço do Azure dá suporte ao uso das seguintes propriedades de mensagem ao enviar mensagens únicas.

Nome do cabeçalho Tipo de cabeçalho
MessageId Dinâmica
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

Nota

  • O valor padrão de MessageId é a ID interna do evento Event Grid. Você pode substituí-lo. Por exemplo, data.field.
  • Você só pode definir um 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 nos cabeçalhos das mensagens. Para obter uma lista de propriedades de cabeçalho de mensagem, consulte Service Bus 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 em sua assinatura de evento para especificar a chave de partição que identifica a PartitionKey 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 para o aeg- nome da propriedade, pois ele é usado pelas propriedades do sistema nos cabeçalhos das mensagens. Para obter uma lista de propriedades de cabeçalho de mensagem, consulte Hubs de Eventos como um manipulador de eventos

Configurar o tempo para viver eventos de saída para as Filas de Armazenamento do Azure

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

Delivery properties - storage queue

Próximos passos

Para obter mais informações sobre a entrega de eventos, consulte o seguinte artigo: