Conceitos dos acionadores e dos enlaces das Funções do Azure
Neste artigo, você aprenderá os conceitos de alto nível em torno de funções, gatilhos e associações.
Os gatilhos fazem com que uma função seja executada. Um acionador define como uma função é invocada e uma função tem de ter exatamente um acionador. Os acionadores têm dados associados, que são geralmente fornecidos como o payload da função.
A vinculação a uma função é uma forma de conectar declarativamente outro recurso à função; As ligações podem ser conectadas como ligações de entrada, ligações de saída ou ambas. Os dados de enlaces são fornecidos à função como parâmetros.
Pode combinar e corresponder enlaces diferentes consoante as suas necessidades. Os enlaces são opcionais e uma função pode ter um ou mais enlaces de entrada e/ou de saída.
Gatilhos e associações permitem evitar o acesso de codificação a outros serviços. A sua função recebe dados (por exemplo, os conteúdos de uma mensagem de fila) em parâmetros de função. Pode enviar dados (por exemplo, para criar uma mensagem de fila) através do valor de retorno da função.
Considere os seguintes exemplos de como você pode implementar diferentes funções.
Cenário de exemplo | Acionador | Vinculação de entrada | Vinculação de saída |
---|---|---|---|
Chega uma nova mensagem de fila que executa uma função para gravar em outra fila. | Fila* | Nenhuma | Fila* |
Um trabalho agendado lê o conteúdo do Armazenamento de Blob e cria um novo 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. | Event Grid | Armazenamento de Blobs e Azure Cosmos DB | SendGrid |
Um webhook que usa o Microsoft Graph para atualizar uma planilha do Excel. | HTTP | Nenhuma | Microsoft Graph |
* Representa filas diferentes
Esses exemplos não devem ser exaustivos, mas são fornecidos para ilustrar como você pode usar gatilhos e ligações juntos.
Definições de desencadeamento e vinculativas
Gatilhos e ligações são definidos de forma diferente dependendo da linguagem de desenvolvimento.
Idioma | Gatilhos e ligações são configurados por... |
---|---|
Biblioteca de classes C# | métodos e parâmetros de decoração com atributos C# |
Java | métodos e parâmetros de decoração com anotações Java |
JavaScript/PowerShell/Python/TypeScript | atualizando function.json (esquema) |
Para idiomas que dependem de function.json, o portal fornece uma interface do usuário para adicionar associações na guia Integração . Você também pode editar o arquivo diretamente no portal na guia Código + teste da sua função. O Visual Studio Code permite que você adicione facilmente uma associação a um arquivo function.json seguindo um conjunto conveniente de prompts.
Em .NET e Java, o tipo de parâmetro define o tipo de dados para dados de entrada. Por exemplo, use string
para vincular 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 da biblioteca de classes .NET e as funções Java não dependem de function.json para definições de vinculação, elas não podem ser criadas e editadas no portal. A edição do portal C# é baseada no script C#, que usa function.json em vez de atributos.
Para saber mais sobre como adicionar associações a funções existentes, consulte Conectar funções aos serviços do Azure usando associações.
Para linguagens que são digitadas dinamicamente, como JavaScript, use a dataType
propriedade no arquivo function.json . Por exemplo, para ler o conteúdo de uma solicitação HTTP em formato binário, defina dataType
como binary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
Outras opções para dataType
são stream
e string
.
Direção da vinculação
Todos os gatilhos e associações têm uma direction
propriedade no arquivo function.json :
- Para gatilhos, a direção é sempre
in
- Utilização
in
de ligações de entrada e saída eout
- Algumas ligações suportam uma direção
inout
especial. Se utilizarinout
o , apenas o editor Avançado estará disponível através do separador Integrar no portal.
Quando você usa atributos em uma biblioteca de classes para configurar gatilhos e associações, a direção é fornecida em um construtor de atributos ou inferida a partir do tipo de parâmetro.
Adicionar associações a uma função
Você pode conectar sua função a outros serviços usando ligações de entrada ou saída. Adicione uma associação adicionando suas definições específicas à sua função. Para saber como, consulte Adicionar associações a uma função existente no Azure Functions.
Ligações suportadas
Esta tabela mostra as associações com suporte nas versões principais do tempo de execução do Azure Functions:
Type | 1,x1 | 2.x e superior2 | Acionador | Entrada | Saída |
---|---|---|---|---|---|
Armazenamento de blobs | ✔ | ✔ | ✔ | ✔ | ✔ |
BD do Cosmos para o Azure | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
SQL do Azure | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Hubs de Eventos | ✔ | ✔ | ✔ | ✔ | |
HTTP & webhooks | ✔ | ✔ | ✔ | ✔ | |
Hub IoT | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Aplicações Móveis | ✔ | ✔ | ✔ | ||
Hubs de Notificação | ✔ | ✔ | |||
Armazenamento de filas | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
CoelhoMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Armazenamento de tabelas | ✔ | ✔ | ✔ | ✔ | |
Temporizador | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 O suporte terminará para a versão 1.x do tempo de execução do Azure Functions em 14 de setembro de 2026. É altamente recomendável que você migre seus aplicativos para a versão 4.x para obter suporte completo.
2 A partir do tempo de execução da versão 2.x, todas as associações, exceto HTTP e Timer, devem ser registradas. Consulte Registrar extensões de vinculação.
3 Os gatilhos não são suportados no plano de consumo. Requer gatilhos controlados por tempo de execução.
4 Suportado apenas no Kubernetes, IoT Edge e outros modos auto-hospedados.
Para obter informações sobre quais associações estão em visualização ou são aprovadas para uso em produção, consulte Idiomas suportados.
Versões de extensão de vinculação específicas só são suportadas enquanto o SDK do serviço subjacente é suportado. 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 enlaces
Use a tabela a seguir para encontrar exemplos de tipos de vinculação específicos que mostram como trabalhar com associações em suas funções. Primeiro, escolha a guia de idioma que corresponde ao seu projeto.
O código de vinculação para C# depende do modelo de processo específico.
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de Blobs | Acionador Entrada Saída |
Ligação |
Azure Cosmos DB | Acionador Entrada Saída |
Ligação |
Azure Data Explorer | Entrada Saída |
Ligação |
SQL do Azure | Acionador Entrada Saída |
Ligação |
Event Grid | Acionador Saída |
Ligação |
Hubs de Eventos | Acionador Saída |
|
Hub IoT | Acionador Saída |
|
HTTP | Acionador | Ligação |
Armazenamento de filas | Acionador Saída |
Ligação |
RabbitMQ | Acionador Saída |
|
SendGrid | Saída | |
Service Bus | Acionador Saída |
Ligação |
SignalR | Acionador Entrada Saída |
|
Armazenamento de tabelas | Entrada Saída |
|
Temporizador | Acionador | Ligação |
Twilio | Saída | Ligação |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de Blobs | Acionador Entrada Saída |
Ligação |
Azure Cosmos DB | Acionador Entrada Saída |
Ligação |
Azure Data Explorer | Entrada Saída |
Ligação |
SQL do Azure | Acionador Entrada Saída |
|
Event Grid | Acionador Saída |
Ligação |
Hubs de Eventos | Acionador Saída |
|
Hub IoT | Acionador Saída |
|
HTTP | Acionador | Ligação |
Armazenamento de filas | Acionador Saída |
Ligação |
RabbitMQ | Acionador Saída |
|
SendGrid | Saída | |
Service Bus | Acionador Saída |
Ligação |
SignalR | Acionador Entrada Saída |
|
Armazenamento de tabelas | Entrada Saída |
|
Temporizador | Acionador | Ligação |
Twilio | Saída | Ligação |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de Blobs | Acionador Entrada Saída |
Ligação |
Azure Cosmos DB | Acionador Entrada Saída |
Ligação |
Azure Data Explorer | Entrada Saída |
|
SQL do Azure | Acionador Entrada Saída |
Ligação |
Event Grid | Acionador Saída |
Ligação |
Hubs de Eventos | Acionador Saída |
|
Hub IoT | Acionador Saída |
|
HTTP | Acionador | Ligação |
Armazenamento de filas | Acionador Saída |
Ligação |
RabbitMQ | Acionador Saída |
|
SendGrid | Saída | |
Service Bus | Acionador Saída |
Ligação |
SignalR | Acionador Entrada Saída |
|
Armazenamento de tabelas | Entrada Saída |
|
Temporizador | Acionador | Ligação |
Twilio | Saída | Ligação |
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de Blobs | Acionador Entrada Saída |
Ligação |
Azure Cosmos DB | Acionador Entrada Saída |
Ligação |
SQL do Azure | Acionador Entrada Saída |
|
Event Grid | Acionador Saída |
Ligação |
Hubs de Eventos | Acionador Saída |
|
Hub IoT | Acionador Saída |
|
HTTP | Acionador | Ligação |
Armazenamento de filas | Acionador Saída |
Ligação |
RabbitMQ | Acionador Saída |
|
SendGrid | Saída | |
Service Bus | Acionador Saída |
Ligação |
SignalR | Acionador Entrada Saída |
|
Armazenamento de tabelas | Entrada Saída |
|
Temporizador | Acionador | Ligação |
Twilio | Saída | Ligação |
O código de vinculação para Python depende da versão do modelo Python.
Serviço | Exemplos | Exemplos |
---|---|---|
Armazenamento de Blobs | Acionador Entrada Saída |
Ligação |
Azure Cosmos DB | Acionador Entrada Saída |
Ligação |
Azure Data Explorer | Entrada Saída |
|
SQL do Azure | Acionador Entrada Saída |
Ligação |
Event Grid | Acionador Saída |
Ligação |
Hubs de Eventos | Acionador Saída |
|
Hub IoT | Acionador Saída |
|
HTTP | Acionador | Ligação |
Armazenamento de filas | Acionador Saída |
Ligação |
RabbitMQ | Acionador Saída |
|
SendGrid | Saída | |
Service Bus | Acionador Saída |
Ligação |
SignalR | Acionador Entrada Saída |
|
Armazenamento de tabelas | Entrada Saída |
|
Temporizador | Acionador | Ligação |
Twilio | Saída | Ligação |
Ligações personalizadas
Você pode criar ligações de entrada e saída personalizadas. As ligações devem ser criadas no .NET, mas podem ser consumidas a partir de qualquer idioma suportado. Para obter mais informações sobre como criar associações personalizadas, consulte Criando ligações de entrada e saída personalizadas.
Recursos
- Vinculando expressões e padrões
- Usando o valor de retorno da Função do Azure
- Como registar uma expressão vinculativa
- Testes:
- Tratamento de erros de vinculação
Próximos passos
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários