Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Grade de Eventos do Azure permite arquiteturas baseadas em eventos de forma perfeita, encaminhando eventos de fontes para manipuladores. Neste artigo, irá aprender a configurar as filas e os tópicos do Azure Service Bus como manipuladores de eventos para os eventos do Event Grid. Este guia passo a passo ajudará você a configurar filas e tópicos do Barramento de Serviço para processar eventos em aplicativos corporativos usando o portal do Azure, CLI, PowerShell e APIs REST.
Filas do Service Bus
Você pode rotear 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 corporativos.
Utilizar o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione 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.
Nota
Se você estiver usando a assinatura de fila/tópico habilitada para sessão como destino, precisará definir a propriedade session no evento usando Delivery Property com o nome de cabeçalho 'SessionId'.
Utilizar a CLI do Azure
Use o az eventgrid event-subscription create comando com --endpoint-type set to servicebusqueue e --endpoint set to /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Eis 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 az eventgrid topic event-subscription comando para tópicos personalizados, o comando para tópicos do az eventgrid system-topic event-subscription sistema e o comando para tópicos de az eventgrid partner topic event-subscription create parceiros.
Utilizar o Azure PowerShell
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>. Eis 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 para tópicos do New-AzEventGridSystemTopicEventSubscription sistema e o comando para tópicos de New-AzEventGridPartnerTopicEventSubscription parceiros.
Tópicos do Service Bus
Você pode rotear eventos na Grade de Eventos diretamente para tópicos do Service Bus para cenários de mensagens de comando e controle.
Utilizar o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione 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.
Utilizar a CLI do Azure
Use o az eventgrid event-subscription create comando com --endpoint-type set to servicebustopic e --endpoint set to /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Eis 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 az eventgrid topic event-subscription comando para tópicos personalizados, o comando para tópicos do az eventgrid system-topic event-subscription sistema e o comando para tópicos de az eventgrid partner topic event-subscription create parceiros.
Utilizar o Azure PowerShell
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>. Eis 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 para tópicos do New-AzEventGridSystemTopicEventSubscription sistema e o comando para tópicos de New-AzEventGridPartnerTopicEventSubscription parceiros.
Cabeçalhos de mensagens
Estas são as propriedades que você recebe nos cabeçalhos das mensagens:
| Nome da propriedade | Description |
|---|---|
| aeg-nome-subscrição | Nome da assinatura do evento. |
| AEG-Contagem de entregas | Número de tentativas feitas para o evento. |
| aeg-tipo de evento | Tipo do evento. Pode ser um dos seguintes valores:
|
| aeg-metadata-versão | Versão de metadados do evento. Para o esquema de eventos da Grade de Eventos, essa propriedade representa a versão dos metadados e, para o esquema de eventos na nuvem, representa a versão da especificação. |
| aeg-data-versão | Versão de dados do evento. Para o esquema de eventos da Grade de Eventos, essa propriedade representa a versão dos dados e, para o esquema de eventos na nuvem, ela não se aplica. |
| aeg-output-event-id | ID do evento Event Grid. |
Quando você envia um evento para uma fila ou tópico do Service Bus como uma mensagem intermediada, a messageid mensagem intermediada é uma ID do sistema interno.
O ID do sistema interno da mensagem é mantido durante a reentrega do evento para que você possa evitar entregas duplicadas ativando a deteção de duplicados na entidade do barramento de serviço. Recomendamos que você habilite a duração da deteção de duplicados na entidade do Service Bus para ser o tempo de vida útil (TTL) do evento ou a duração máxima de repetição, o que for maior.
Propriedades de entrega
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 o destino exige. Você pode definir cabeçalhos personalizados nos eventos que são entregues às filas e tópicos do Barramento de Serviço do Azure.
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
SessionIdouMessageId.
Para obter mais informações, consulte Propriedades de entrega personalizadas.
Exemplos REST (para PUT)
Fila do Service Bus
{
"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 Service Bus - 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 Service Bus
{
"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 Service Bus - 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"
}
}
Nota
Quando ocorre um failover para um namespace do Service Bus habilitado para Recuperação de Desastres Geográficos, 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óximos passos
Consulte o artigo Manipuladores de eventos para obter uma lista de manipuladores de eventos suportados.