Tópicos e filas do Barramento de Serviço como manipuladores de eventos para eventos da Grade de Eventos do Azure
Um manipulador de eventos recebe eventos de uma origem de evento por meio da Grade de Eventos e processa esses eventos. Você pode usar instâncias de alguns serviços do Azure para lidar com eventos, e o Barramento de Serviço do Azure é um deles. Este artigo mostra como usar uma fila ou um tópico do Barramento de Serviço como um manipulador para eventos da Grade de Eventos.
Filas do Barramento de Serviço
Você pode encaminhar eventos na Grade de Eventos diretamente para filas do Barramento de Serviço para uso em buffer ou cenários de comando e controle em aplicativos empresariais.
Usar o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione a Fila do Barramento de Serviço como o tipo de ponto de extremidade e clique em Selecionar um ponto de extremidade para escolher uma fila do Barramento de Serviço.
Observação
Não há suporte para filas habilitadas para sessão como manipuladores de eventos para eventos de Grade de Eventos do Azure
Usar a CLI do Azure
Use o comando az eventgrid event-subscription create
com --endpoint-type
definido como servicebusqueue
e --endpoint
definido como /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Aqui está um exemplo:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
Você também pode usar o comando az eventgrid topic event-subscription
para tópicos personalizados, o comando az eventgrid system-topic event-subscription
para tópicos do sistema e o comando az eventgrid partner topic event-subscription create
para tópicos de parceiro.
Usar PowerShell do Azure
Use o comando New-AzEventGridSubscription com -EndpointType
definido como servicebusqueue
e -Endpoint
definido como /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Aqui está um exemplo:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Você também pode usar o comando New-AzEventGridSystemTopicEventSubscription
para tópicos do sistema e o comando New-AzEventGridPartnerTopicEventSubscription
para tópicos de parceiro.
Tópicos do Barramento de Serviço
Você pode rotear eventos na Grade de Eventos diretamente para tópicos do Barramento de Serviço para cenários de mensagens de controle e comando.
Usar o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione o Tópico do Barramento de Serviço como o tipo de ponto de extremidade e clique em selecionar um ponto de extremidade para escolher um tópico do Barramento de Serviço.
Usar a CLI do Azure
Use o comando az eventgrid event-subscription create
com --endpoint-type
definido como servicebustopic
e --endpoint
definido como /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Aqui está um exemplo:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
Você também pode usar o comando az eventgrid topic event-subscription
para tópicos personalizados, o comando az eventgrid system-topic event-subscription
para tópicos do sistema e o comando az eventgrid partner topic event-subscription create
para tópicos de parceiro.
Usar PowerShell do Azure
Use o comando New-AzEventGridSubscription com -EndpointType
definido como servicebustopic
e -Endpoint
definido como /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Aqui está um exemplo:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Você também pode usar o comando New-AzEventGridSystemTopicEventSubscription
para tópicos do sistema e o comando New-AzEventGridPartnerTopicEventSubscription
para tópicos de parceiro.
Cabeçalhos de mensagem
Estas são as propriedades que você recebe nos cabeçalhos das mensagens:
Nome da propriedade | Descrição |
---|---|
aeg-subscription-name | Nome da assinatura do evento. |
aeg-delivery-count | Número de tentativas feitas para o evento. |
aeg-event-type | Tipo do evento. Pode ser um dos seguintes valores:
|
aeg-metadata-version | A versão de metadados do evento. Para o esquema de evento da Grade de Eventos, essa propriedade representa a versão de metadados e, para o esquema de evento da nuvem, ela representa a versão de especificação. |
aeg-data-version | Versão de dados do evento. Para o esquema de evento da Grade de Eventos, essa propriedade representa a versão dos dados e para o esquema de evento da nuvem, ela não se aplica. |
aeg-output-event-id | ID do evento da Grade de Eventos. |
Quando você enviar um evento para uma fila ou um tópico do Barramento de Serviço como uma mensagem agenciada, o messageid
da mensagem agenciada é uma ID interna do sistema.
A ID interna do sistema para a mensagem é mantida na nova entrega do evento para que você possa evitar entregas duplicadas ativando a detecção de duplicidades na entidade do barramento de serviço. Recomendamos que você habilite a duração da detecção de duplicidades na entidade do Barramento de Serviço como TTL (tempo de vida) do evento ou duração máxima de repetição, o que for maior.
Propriedades de entrega
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 exigidos pelo destino. Você pode definir cabeçalhos personalizados nos eventos que são entregues a filas e tópicos do Barramento de Serviço do Azure.
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
ouMessageId
.
Para obter mais informações, confira Propriedades de entrega personalizadas.
Exemplos de REST (para PUT)
Fila do Barramento de Serviço
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Fila do Barramento de Serviço – entrega com identidade gerenciada
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Tópico do Barramento de Serviço
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Tópico do Barramento de Serviço – entrega com identidade gerenciada
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Observação
Quando ocorre um failover para um namespace do Barramento de Serviço habilitado para Recuperação de Desastre Geográfico, o namespace secundário não emite eventos para a Grade de Eventos. Você precisa adicionar manualmente a assinatura da Grade de Eventos para o namespace secundário.
Próximas etapas
Consulte o artigo Manipuladores de eventos para obter uma lista dos manipuladores de eventos compatíveis.