Conceitos de gatilhos e de associações do Azure Functions

Neste artigo, você aprenderá os conceitos de alto nível em torno dos gatilhos de funções e associações.

Os gatilhos fazem com que uma função seja executada. Um gatilho define como uma função é invocada e uma função deve ter exatamente um gatilho. Gatilhos têm dados associados, que geralmente são fornecidos como o conteúdo da função.

A associação a uma função é uma maneira de conectar declarativamente um recurso à função; as associações podem ser conectadas como associações de entrada, associações de saída ou ambas. Dados de associações são fornecidos à função como parâmetros.

Você pode misturar e combinar diferentes associações para atender às suas necessidades. Associações são opcionais e uma função pode ter uma ou várias associações de entrada e/ou saída.

Gatilhos e associações permitem evitar codificar o acesso a outros serviços. Sua função recebe dados (por exemplo, o conteúdo de uma mensagem da fila) em parâmetros de função. Você envia dados (por exemplo, para criar uma mensagem da fila) usando o valor retornado da função.

Considere os exemplos a seguir de como você pode implementar diferentes funções.

Cenário de exemplo Gatilho Associação de entrada Associação de saída
Uma nova mensagem de fila chega e executa uma função para gravar em outra fila. Fila* Nenhum Fila*
Um trabalho agendado lê o conteúdo do Armazenamento de Blobs e cria um novo documento do Cosmos DB. Temporizador Armazenamento de Blobs Cosmos DB
A Grade de Eventos é usada para ler uma imagem do Armazenamento de Blobs e um documento do Cosmos DB para enviar um email. Grade de Eventos Armazenamento de Blobs e Cosmos DB SendGrid
Um webhook que usa o Microsoft Graph para atualizar uma planilha do Excel. HTTP Nenhum Microsoft Graph

* Representa filas diferentes

Esses exemplos não são exaustivos, mas são fornecidos para ilustrar como você pode usar gatilhos e associações conjuntamente.

Definições de associação e gatilho

Os gatilhos e as associações são definidos de forma diferente, dependendo da linguagem de desenvolvimento.

Idioma Gatilhos e associações são configurados por meio da...
Biblioteca de classes C#      identificação de métodos e parâmetros com atributos C#
Java      identificação de métodos e parâmetros com anotações Java
JavaScript/PowerShell/Python/TypeScript      atualização do function.json (esquema)

Para linguagens que dependem do function.json, o portal fornece uma interface do usuário para adicionar associações na guia Integração. Também é possível editar o arquivo diretamente no portal na guia Código + teste da função. O Visual Studio Code permite adicionar uma associação ao um arquivo function.json seguindo um conjunto conveniente de prompts.

No .NET e no Java, o tipo de parâmetro define o tipo de dados para dados de entrada. Por exemplo, use string para associar ao texto de um gatilho de fila, uma matriz de bytes para ler como binário e um tipo personalizado para desserializar para um objeto. Como as funções de biblioteca de classes do .NET e as funções Java não dependem do function.js para definições de associação, elas não podem ser criadas e editadas no portal. A edição do portal C# se baseia no script C#, que usa o function.json vez de atributos.

Para saber mais sobre como adicionar associações às funções existentes, veja Conectar funções aos serviços do Azure usando associações.

Para idiomas que são digitados dinamicamente como JavaScript, use a propriedade dataType no arquivo function.json. Por exemplo, para ler o conteúdo de uma solicitação HTTP em formato binário, defina dataType para binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Outras opções para dataType são stream e string.

Direção de associação

Todos os disparadores e associações têm uma propriedade direction no arquivo function.json:

  • Para gatilhos, a direção sempre é in
  • Associações de entrada e saída usam in e out
  • Algumas associações dão suporte a uma direção especial inout. Se você usar inout, somente o Editor avançado estará disponível na guia Integrar no portal.

Quando você usa atributos em uma biblioteca de classes para configurar associações e gatilhos, a direção é fornecida em um construtor de atributo ou inferida do tipo de parâmetro.

Adicionar associações a uma função

Você pode conectar a função a outros serviços usando associações de entrada ou saída. Adicione uma associação adicionando suas definições específicas à função. Para saber mais, veja Adicionar associações a uma função existente no Azure Functions.

Associações com suporte

Esta tabela mostra as associações que são compatíveis com as versões principais do Azure Functions Runtime:

Tipo 1.x 2.x e posterior1 Gatilho Entrada Saída
Armazenamento de Blobs
Azure Cosmos DB
Dapr3
Grade de Eventos
Hubs de Evento
HTTP e webhooks
Hub IoT
Kafka2
Aplicativos Móveis
Hubs de Notificação
Armazenamento de filas
RabbitMQ2
SendGrid
Barramento de Serviço
SignalR
Armazenamento de tabelas
Timer
Twilio

1 A partir de runtimes de versão 2.x e posteriores, todas as associações, exceto HTTP e Timer, precisam ser registradas. Confira Registrar as extensões de associação.

2 Não há suporte para gatilhos no plano de Consumo. Requer gatilhos controlados por runtime.

3 Com suporte apenas no Kubernetes, IoT Edge e outros modos com auto-hospedagem.

Para obter informações sobre quais associações estão na visualização ou são aprovadas para o uso de produção, consulte Idiomas com suporte.

Exemplos de código de associações

Use a tabela a seguir para encontrar exemplos de tipos de associação específicos, que mostram como trabalhar com associações nas funções. Primeiro, escolha a guia da linguagem que corresponde ao seu projeto.

Serviço Exemplos Exemplos
Armazenamento de blobs Gatilho
Entrada
Saída
Link
Azure Cosmos DB Gatilho
Entrada
Saída
Link
Grade de Eventos Gatilho
Saída
Link
Hubs de Eventos Gatilho
Saída
Hub IoT Gatilho
Saída
HTTP Gatilho Link
Armazenamento de filas Gatilho
Saída
Link
RabbitMQ Gatilho
Saída
SendGrid Saída
Barramento de Serviço Gatilho
Saída
Link
SignalR Gatilho
Entrada
Saída
Armazenamento de tabela Entrada
Saída
Temporizador Gatilho Link
Twilio Saída Link

Associações personalizadas

Você pode criar associações de entrada e saída personalizadas. As associações devem ser criadas no .NET, mas podem ser consumidas em qualquer linguagem com suporte. Para obter mais informações sobre como criar associações personalizadas, veja Criar associações de entrada e saída personalizadas.

Recursos

Próximas etapas