Conceitos de gatilhos e de associações do Azure Functions
Neste artigo, você aprenderá os conceitos de alto nível em torno dos gatilhos e das associações de funções.
Os gatilhos fazem com que as funções sejam executadas. 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* | Nenhuma | Fila* |
Um trabalho agendado lê o conteúdo do Armazenamento de Blobs e cria um documento do Azure Cosmos DB. | Temporizador | Armazenamento de Blobs | Azure Cosmos DB |
A Grade de Eventos é usada para ler uma imagem do Armazenamento de Blobs e um documento do Azure Cosmos DB para enviar um email. | Grade de Eventos | Armazenamento de Blobs e Azure 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 dataType
. 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 direction
:
- Para gatilhos, a direção sempre é
in
- Associações de entrada e saída usam
in
eout
- Algumas associações dão suporte a uma direção especial
inout
. Se você usarinout
, somente oinout
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.x1 | 2.x e posterior2 | Gatilho | Entrada | Saída |
---|---|---|---|---|---|
Armazenamento de Blobs | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
SQL do Azure | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Grade de Eventos | ✔ | ✔ | ✔ | ✔ | |
Hubs de Evento | ✔ | ✔ | ✔ | ✔ | |
HTTP e webhooks | ✔ | ✔ | ✔ | ✔ | |
Hub IoT | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Aplicativos Móveis | ✔ | ✔ | ✔ | ||
Hubs de Notificação | ✔ | ✔ | |||
Armazenamento de filas | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Barramento de Serviço | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Armazenamento de tabelas | ✔ | ✔ | ✔ | ✔ | |
Timer | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1O suporte da versão 1.x do runtime do Azure Functions terminará em 14 de setembro de 2026. Recomendamos que você migre seus aplicativos para a versão 4.x para receber suporte completo.
2 A partir da versão 2.x do runtime, todas as associações, exceto HTTP e Timer, precisam ser registradas. Confira Registrar as extensões de associação.
3 Não há suporte para gatilhos no plano de Consumo. Requer gatilhos controlados por runtime.
4 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.
Só há suporte para versões de extensão de associação específicas enquanto há suporte para o SDK do serviço subjacente. As alterações no suporte na versão do SDK do serviço subjacente afetam o suporte para a extensão de consumo.
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.
O código de associação para C# depende do modelo do processo específico.
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de blob | Gatilho Entrada Saída |
Link |
Azure Cosmos DB | Gatilho Entrada Saída |
Link |
Azure Data Explorer | Entrada Saída |
Link |
SQL do Azure | 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 |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de blob | Gatilho Entrada Saída |
Link |
Azure Cosmos DB | Gatilho Entrada Saída |
Link |
Azure Data Explorer | Entrada Saída |
Link |
SQL do Azure | Gatilho Entrada Saída |
|
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 |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de blob | Gatilho Entrada Saída |
Link |
Azure Cosmos DB | Gatilho Entrada Saída |
Link |
Azure Data Explorer | Entrada Saída |
|
SQL do Azure | 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 |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de blob | Gatilho Entrada Saída |
Link |
Azure Cosmos DB | Gatilho Entrada Saída |
Link |
SQL do Azure | Gatilho Entrada Saída |
|
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 |
O código de ligação para Python depende da versão do modelo Python.
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de blob | Gatilho Entrada Saída |
Link |
Azure Cosmos DB | Gatilho Entrada Saída |
Link |
Azure Data Explorer | Entrada Saída |
|
SQL do Azure | 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
- Padrões e expressões de associação
- Usar o valor de retorno do Azure Function
- Como registrar uma expressão de associação
- Teste:
- Tratamento de erros de associação