Partilhar 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 onde o evento é enviado. O manipulador executa uma ação para processar o evento. Aqui está a lista de manipuladores de eventos suportados para tópicos de namespace:

Use Hubs de Eventos quando sua solução obtém eventos da Grade de Eventos mais rápido do que pode processar os eventos. Quando os eventos estiverem em um hub de eventos, seu aplicativo poderá processar eventos do hub de eventos em sua própria programação. Você pode dimensionar o processamento de eventos para manipular os eventos recebidos.

Cabeçalhos de mensagens

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

Property name Description
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 de Grade de Eventos. Atualmente, o único valor possível é false. Destina-se a ajudar os manipuladores de eventos a distinguir entre eventos entregues por meio de namespaces da Grade de Eventos versus tópicos personalizados da Grade de Eventos/tópicos do sistema/namespaces de parceiros, etc.
aeg-metadata-version Versão de metadados do evento. Representa a versão de especificação para o esquema de eventos na nuvem.

Exemplos REST

Assinatura de eventos com Hubs de Eventos como manipulador de eventos usando identidade atribuída ao 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 eventos com Hubs de Eventos como manipulador de eventos usando identidade atribuída ao 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 letra morta configurado em um manipulador de eventos de 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 de 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 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 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 PartitionKey propriedade em 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, consulte 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 ecrã que mostra a página Criar Subscrição com Push selecionado para o modo de 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 um destino.

Próximos passos