Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Grade de Eventos do Azure suporta arquiteturas orientadas a eventos, roteando eventos das fontes para os handlers. Este artigo mostra como configurar filas e tópicos do Barramento de Serviço do Azure como manipuladores de eventos para eventos do Event Grid. Você 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. Crie uma conta gratuitamente.
- Um tópico do Event Grid, tópico do sistema, tópico personalizado ou tópico de parceiro ao qual se inscrever. Para mais informações, consulte Criar um tópico ou um domínio no Event Grid.
- Um namespace do Barramento de Serviço com uma fila ou um tópico para receber os eventos. Para mais informações, veja Criar um namespace Barramento de Serviço e uma fila usando o portal Azure.
- Permissão para criar uma assinatura de evento no tópico de origem e enviar mensagens para a fila ou tópico do Barramento de Serviço de destino.
Filas do Barramento de Serviço
Encaminhe eventos na Grade de Eventos diretamente para filas do Barramento de Serviço para usar em buffer ou cenários de comando e controle em aplicativos empresariais.
Configure uma fila do Barramento de Serviço usando o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione Barramento de Serviço Queue como tipo de endpoint e, em seguida, selecione Select a endpoint para escolher uma fila Barramento de Serviço.
Observação
Se você usar uma fila ou uma assinatura de tópico com sessão habilitada como destino, defina a propriedade de sessão no evento usando uma propriedade de entrega com o nome de cabeçalho SessionId.
Configure uma fila do Barramento de Serviço 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>. 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.
Configure uma fila do Barramento de Serviço 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>. 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
Direcione eventos no Event Grid diretamente para tópicos do Barramento de Serviço para cenários de mensagens de comando e controle.
Configure um tópico do Barramento de Serviço usando o portal do Azure
No portal do Azure, ao criar uma assinatura de evento, selecione Barramento de Serviço Topic como tipo de endpoint e, em seguida, selecione Select a endpoint para escolher um tópico Barramento de Serviço.
Configure um tópico do Barramento de Serviço 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>. 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.
Configure um tópico de Barramento de Serviço 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>. 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 de evento. |
| aeg-delivery-count | Número de tentativas realizadas para o evento. |
| aeg-event-type | Tipo do evento. Pode ser um dos seguintes valores:
|
| aeg-metadata-version | Versão dos 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 do Event Grid. |
Quando você envia um evento para uma fila ou tópico do Barramento de Serviço como uma mensagem intermediada, o messageid da mensagem intermediada é um identificador interno do sistema.
O ID interno do sistema para a mensagem persiste durante a reentrega do evento, para que você possa evitar entregas duplicadas ativando a detecção de duplicados na entidade Barramento de Serviço. Defina a duração da detecção de duplicatas na entidade do Barramento de Serviço como o tempo de vida (TTL) do evento ou a duração máxima de nova tentativa, o que for maior.
Propriedades de entrega
Quando você usa assinaturas de eventos, pode configurar cabeçalhos HTTP para incluir em eventos entregues. Essa capacidade suporta a definição de cabeçalhos personalizados que o destino exige. Você pode definir cabeçalhos personalizados nos eventos que são entregues a filas e tópicos do Barramento de Serviço do Azure.
Barramento de Serviço do Azure suporta as seguintes propriedades de mensagem quando você envia 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, usedata.field. - Você só pode definir
SessionIdouMessageId.
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ê deve adicionar manualmente a assinatura do Event Grid para o namespace secundário.
Conteúdo relacionado
Para uma lista de manipuladores de eventos suportados, veja o artigo Gerenciadores de eventos .