Partilhar via


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 para os 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

Note

Valores não conformes em cabeçalhos conhecidos fazem com que o cabeçalho seja descartado durante a entrega do evento para destinos do webhook, mas não durante a validação do webhook.

When creating an event subscription in the Azure portal, you can use the Delivery Properties tab to set custom HTTP headers. 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:

Propriedades de entrega - estáticas

You might want to check Is secret? when you're providing sensitive data. 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. For example, to set the value of a header named Channel using the value of the incoming event property system in the event data, configure your event subscription in the following way:

Propriedades de entrega - dinâmico

Utilizar a CLI do Azure

Use o --delivery-attribute-mapping parâmetro ao criar uma assinatura usando o az 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

Examples

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.

Header name Header type Header value
Authorization Static 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...

Note

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.

Header name Header type
MessageId Dynamic
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

Note

  • 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 PartitionKey propriedade em sua assinatura de evento para especificar a chave de partição que identifica a partição do hub de eventos de destino.

Header name Header type
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 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.

Propriedades de entrega - fila de armazenamento

Next steps

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