Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Event Grid suporta arquiteturas orientadas a eventos, encaminhando eventos das fontes para os handlers. Este artigo mostra-lhe como configurar filas e tópicos do Azure Service Bus como gestores de eventos para eventos do Event Grid. Configura a fila ou tópico para processar eventos em aplicações empresariais usando o portal Azure, CLI do Azure, Azure PowerShell ou API REST.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Cria uma conta gratuitamente.
- Um tema da Grelha de Eventos, tema do sistema, tópico personalizado ou tópico parceiro para subscrever. Para mais informações, consulte o tema Criar uma Grelha de Eventos ou um domínio.
- Um espaço de nomes do Service Bus com uma fila ou um tópico para receber os eventos. Para mais informações, consulte Criar um namespace Service Bus e uma fila usando o portal Azure.
- Permissão para criar uma subscrição de eventos no tópico de origem e para enviar mensagens para a fila ou tópico de destino do Service Bus.
Filas do Service Bus
Encaminhe eventos do Event Grid diretamente para filas do Service Bus para armazenamento temporário ou cenários de comando e controlo em aplicações empresariais.
Configure uma fila Service Bus usando o portal do Azure
No portal Azure, ao criar uma subscrição de evento, selecione Service Bus Queue como tipo de endpoint e depois selecione Select a endpoint para escolher uma Service Bus queue.
Nota
Se utilizar uma fila ou uma subscrição de tópico com sessão ativada como destino, defina a propriedade de sessão do evento utilizando uma propriedade de entrega com o nome de cabeçalho SessionId.
Configure uma fila Service Bus usando 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>. 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.
Configure uma fila Service Bus usando 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 New-AzEventGridSystemTopicEventSubscription para tópicos do sistema e o comando New-AzEventGridPartnerTopicEventSubscription para tópicos de parceiros.
Tópicos do Service Bus
Encaminhe eventos no Event Grid diretamente para tópicos do Service Bus para cenários de mensagens de comando e controlo.
Configure um tópico do Service Bus usando o portal do Azure
No portal Azure, ao criar uma subscrição de evento, selecione Service Bus Topic como tipo de endpoint e depois selecione Select a endpoint para escolher um tópico Service Bus.
Configure um tópico do Service Bus usando 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>. 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.
Configure um tópico do Service Bus usando 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 New-AzEventGridSystemTopicEventSubscription para tópicos do sistema e o comando New-AzEventGridPartnerTopicEventSubscription para tópicos de parceiros.
Cabeçalhos de mensagens
Estas são as propriedades que você recebe nos cabeçalhos das mensagens:
| Nome da propriedade | Descrição |
|---|---|
| aeg-nome-subscrição | Nome da subscrição do evento. |
| AEG-Contagem de entregas | Número de tentativas efetuadas 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 envia um evento para uma fila ou tópico do Service Bus como uma mensagem mediada, o messageid da mensagem mediada é um identificador interno do sistema.
O ID interno do sistema da mensagem mantém-se durante a reentrega do evento, para que possa evitar entregas duplicadas ativando a deteção de duplicados na entidade Service Bus. Defina a janela de deteção de duplicados na entidade do Service Bus para o tempo de vida (TTL) do evento ou para a duração máxima de repetição, consoante o que for mais longo.
Propriedades de entrega
Quando usa subscrições de eventos, pode configurar cabeçalhos HTTP para incluir nos eventos entregues. Esta funcionalidade suporta a definição de cabeçalhos personalizados que o destino exige. Pode definir cabeçalhos personalizados nos eventos entregues nas filas e tópicos do Azure Service Bus.
O Azure Service Bus suporta as seguintes propriedades de mensagem quando envia mensagens individuais.
| 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, usedata.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"
}
}
Tema 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. Deve adicionar manualmente a subscrição do Event Grid para o namespace secundário.
Conteúdo relacionado
Para uma lista de gestores de eventos suportados, consulte o artigo Gestores de Eventos .