Associações da Grade de Eventos do Azure para o Azure Functions

Esta referência mostra como se conectar a Grade de Eventos do Azure usando gatilhos e vinculações do Azure Functions.

A Grade de Eventos é um serviço do Azure que envia solicitações HTTP para notificá-lo sobre eventos que acontecem nos publicadores. Um publicador é o serviço ou recurso que origina o evento. Por exemplo, uma conta de armazenamento de Blobs do Azure é um publicador, e uma exclusão ou upload de blob é um evento. Alguns serviços do Azure têm suporte interno para publicar eventos na Grade de Eventos.

Os manipuladores de eventos recebem e processam eventos. O Azure Functions é um dos vários serviços doAzure que possuem suporte interno para manipular eventos da Grande de Eventos. O Functions fornece um gatilho da Grade de Eventos, que invoca uma função quando um evento é recebido da Grade de Eventos. Uma associação de saída semelhante pode ser usada para enviar eventos de sua função para um tópico personalizado da Grade de Eventos.

Você também pode usar um gatilho HTTP para manipular eventos da Grade de Eventos. Para saber mais, confira Receber eventos para um ponto de extremidade HTTP. É recomendável usar o gatilho da Grade de Eventos por meio do gatilho HTTP.

Ação Tipo
Executar uma função quando um evento da Grade de Eventos for despachado Gatilho
Envia um evento da Grade de Eventos Associação de saída
Controlar o código de status HTTP retornado Ponto de extremidade HTTP

Instalar a extensão

O pacote NuGet da extensão instalado depende do modo C# usado no aplicativo de funções:

As funções são executadas em um processo de trabalho do C# isolado. Para saber mais, confira o Guia para executar C# do Azure Functions em um processo de trabalho isolado.

A funcionalidade da extensão varia de acordo com a versão da extensão:

Adicione a extensão ao seu projeto instalando o pacote NuGet, versão 3.x.

Instalar pacote

A extensão da Grade de Eventos faz parte de um pacote de extensão, que é especificado no arquivo de projeto host.json. Talvez seja necessário modificar esse pacote se for preciso alterar a versão das associações da Grade de Eventos, ou se os pacotes ainda não estiverem instalados. Para saber mais, confira pacotes de extensão.

Você pode adicionar esta versão da extensão do pacote de extensão v3 adicionando ou substituindo a seguinte configuração no arquivo host.json:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Para saber mais, confira Atualizar suas extensões.

Tipos de associação

Os tipos de associação com suporte para .NET dependem da versão da extensão e do modo de execução do C#, que pode ser um dos seguintes:

Uma função C# compilada da biblioteca de classes do processo de trabalho isolado é executada em um processo isolado do runtime.

Escolha uma versão para ver os detalhes do tipo de associação para o modo e a versão.

O processo de trabalho isolado dá suporte aos tipos de parâmetro de acordo com a tabela abaixo. O suporte à associação a Stream e a tipos de Azure.Messaging está em versão prévia.

Gatilho da Grade de Eventos

Quando você quiser que a função processe um único evento, o gatilho da Grade de Eventos pode ser associado aos seguintes tipos:

Type Descrição
Tipos serializáveis JSON O Functions tenta desserializar os dados JSON do evento em um tipo de objeto CLR básico simples antigo (POCO).
string O evento como uma cadeia de caracteres.
BinaryData1 Os bytes da mensagem de evento.
CloudEvent1 O objeto de evento. Use quando a Grade de Eventos estiver configurada para produzir resultados usando o esquema CloudEvents.
EventGridEvent1 O objeto de evento. Use quando a Grade de Eventos estiver configurada para produzir resultados usando o esquema Grade de Eventos.

Quando você quiser que a função processe um lote de eventos, o gatilho da Grade de Eventos pode ser vinculado aos seguintes tipos:

Type Descrição
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
Uma matriz de eventos do lote. Cada entrada representa um evento.

1 Para usar esses tipos, você precisa referenciar Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 ou posterior e as dependências comuns para associações do tipo SDK.

Associação de saída da Grade de Eventos

Quando você quiser que a função escreva um único evento, a associação de saída da Grade de Eventos pode ser associada aos seguintes tipos:

Type Descrição
string O evento como uma cadeia de caracteres.
byte[] Os bytes da mensagem de evento.
Tipos serializáveis JSON Um objeto que representa um evento JSON. O Functions tenta serializar um tipo de objeto CLR básico (POCO) em dados JSON.

Quando você quiser que a função escreva vários eventos, a associação de saída da Grade de Eventos pode ser associada aos seguintes tipos:

Type Descrição
T[] em que T é um dos tipos de evento único Uma matriz que contém vários eventos. Cada entrada representa um evento.

Para outros cenários de saída, crie e use tipos diretamente de Azure.Messaging.EventGrid.

configurações de host.json

O gatilho da Grade de Eventos usa uma solicitação HTTP de webhook, que pode ser configurada com as mesmas definições host.json usadas pelo Gatilho HTTP.

Próximas etapas