Compartilhar via


Hubs de Eventos do Azure como um destino de manipulador em assinaturas para tópicos de namespace da Grade de Eventos do Azure

Um manipulador de eventos é o local para o qual o evento é enviado. O manipulador usa uma ação para processar o evento. Aqui está a lista de manipuladores de eventos suportados para tópicos de namespace:

Use o Hubs de Eventos quando sua solução receber eventos da Grade de Eventos mais rápido do que é capaz de processar. Quando os eventos estiverem em um hub de eventos, seu aplicativo poderá processar a partir do hub de eventos em seu próprio agendamento. Você pode dimensionar o processamento dos eventos para manipular os eventos de entrada.

Cabeçalhos de mensagem

Aqui estão as propriedades que você recebe no cabeçalho de um evento ou mensagem enviada aos Hubs de Eventos:

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-output-event-id ID do evento gerado pelo sistema.
aeg-compatibility-mode-enabled Essa propriedade só está disponível e definida ao entregar por meio de namespaces da Grade de Eventos. Atualmente, o único valor possível é false. Ele destina-se a ajudar os manipuladores de eventos a distinguir entre eventos entregues por meio de namespaces da Grade de Eventos versus tópicos /tópicos do sistema/namespaces de parceiros/ etc personalizados da Grade de Eventos.
aeg-metadata-version A versão de metadados do evento. Representa a versão de especificação para o esquema de eventos na nuvem.

Exemplos de REST

Assinatura de evento com o Hubs de Eventos como manipulador de eventos usando a identidade atribuída pelo sistema

{
  "properties": {
    "deliveryConfiguration": {
      "deliveryMode": "Push",
      "push": {
        "deliveryWithResourceIdentity": {
          "identity": {
            "type": "SystemAssigned"
          },
          "destination": {
            "endpointType": "EventHub",
            "properties": {
              "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace-name}/eventhubs/{eventhub-name}"
            }
          }
        }
      }
    }
  }
}

Assinatura de evento com o Hubs de Eventos como manipulador de eventos usando a identidade atribuída pelo usuário

{
  "properties": {
    "deliveryConfiguration": {
      "deliveryMode": "Push",
      "push": {
        "deliveryWithResourceIdentity": {
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-identity-name}"
          },
          "destination": {
            "endpointType": "EventHub",
            "properties": {
              "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace-name}/eventhubs/{eventhub-name}"
            }
          }
        }
      }
    }
  }
}

Assinatura de evento com destino de mensagens mortas configurado em um manipulador de eventos dos Hubs de Eventos

{
  "properties": {
    "deliveryConfiguration": {
      "deliveryMode": "Push",
      "push": {
        "deliveryWithResourceIdentity": {
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-identity-name}"
          },
          "destination": {
            "endpointType": "EventHub",
            "properties": {
              "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace-name}/eventhubs/{eventhub-name}"
            }
          }
        },
        "deadLetterDestinationWithResourceIdentity": {
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-identity-name}"
          },
          "deadLetterDestination": {
            "endpointType": "StorageBlob",
            "properties": {
              "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}",
              "blobContainerName": "{blob-container-name}"
            }
          }
        }
      }
    }
  }
}

Assinatura de evento com propriedades de entrega configuradas em um manipulador de eventos dos Hubs de Eventos

{
  "properties": {
    "deliveryConfiguration": {
      "deliveryMode": "Push",
      "push": {
        "deliveryWithResourceIdentity": {
          "identity": {
            "type": "SystemAssigned"
          },
          "destination": {
            "endpointType": "EventHub",
            "properties": {
              "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace-name}/eventhubs/{eventhub-name}",
              "deliveryAttributeMappings": [
                {
                  "name": "somestaticname",
                  "type": "Static",
                  "properties": {
                    "value": "somestaticvalue"
                  }
                },
                {
                  "name": "somedynamicname",
                  "type": "Dynamic",
                  "properties": {
                    "sourceField": "subject"
                  }
                }
              ]
            }
          }
        }
      }
    }
  }
}

Propriedades de entrega específicas dos Hubs de Eventos

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 os cabeçalhos personalizados nos eventos que são entregues aos Hubs de Eventos do Azure.

Se você precisar publicar eventos em uma partição específica dentro de um hub de eventos, defina a propriedade PartitionKey na sua assinatura de evento para especificar a chave de partição que identifica a partição do hub de eventos de destino.

Nome do cabeçalho Tipo de cabeçalho
PartitionKey Estático ou dinâmico

Para obter mais informações, confira Propriedades de entrega personalizadas em namespaces.

Portal do Azure

Ao criar uma assinatura de evento com o modo de entrega de eventos definido como Push, você pode selecionar Hubs de Eventos como o tipo de manipulador de eventos e configurar um hub de eventos como um manipulador.

Captura de tela que mostra a página Criar Assinatura com Push selecionada para o modo Entrega.

Para obter instruções passo a passo, consulte Usar Hubs de Eventos como um destino para tópicos de namespace.

CLI do Azure

Para obter instruções passo a passo, consulte Configurar Hubs de Eventos como um destino.

Próximas etapas