Conceitos de gatilhos e de associações do Azure FunctionsAzure Functions triggers and bindings concepts

Neste artigo, você aprende os conceitos de alto nível em torno de gatilhos e associações de funções.In this article you learn the high-level concepts surrounding functions triggers and bindings.

Os gatilhos são o que causa a execução de uma função.Triggers are what cause a function to run. Um gatilho define como uma função é invocada e uma função deve ter exatamente um gatilho.A trigger defines how a function is invoked and a function must have exactly one trigger. Os gatilhos têm dados associados, que geralmente são fornecidos como a carga da função.Triggers have associated data, which is often provided as the payload of the function.

A associação a uma função é uma maneira de conectar declarativamente outro recurso à função; as associações podem ser conectadas como associações de entrada, associações de saídaou ambas.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. Dados de associações são fornecidos à função como parâmetros.Data from bindings is provided to the function as parameters.

Você pode misturar e combinar associações diferentes para atender às suas necessidades.You can mix and match different bindings to suit your needs. Associações são opcionais e uma função pode ter uma ou várias associações de entrada e/ou saída.Bindings are optional and a function might have one or multiple input and/or output bindings.

Gatilhos e associações permitem que você evite codificar o acesso a outros serviços.Triggers and bindings let you avoid hardcoding access to other services. Sua função recebe dados (por exemplo, o conteúdo de uma mensagem da fila) em parâmetros de função.Your function receives data (for example, the content of a queue message) in function parameters. Você envia dados (por exemplo, para criar uma mensagem da fila) usando o valor retornado da função.You send data (for example, to create a queue message) by using the return value of the function.

Considere os exemplos a seguir de como você pode implementar funções diferentes.Consider the following examples of how you could implement different functions.

Cenário de exemploExample scenario GatilhoTrigger Associação de entradaInput binding Associação de saídaOutput binding
Uma nova mensagem de fila chega, que executa uma função para gravar em outra fila.A new queue message arrives which runs a function to write to another queue. * de filaQueue* NenhumNone * de filaQueue*
Um trabalho agendado lê o conteúdo do armazenamento de BLOBs e cria um novo documento Cosmos DB.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. TimerTimer Armazenamento de BlobBlob Storage Cosmos DBCosmos DB
A grade de eventos é usada para ler uma imagem do armazenamento de BLOBs e um documento do Cosmos DB para enviar um email.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Grade de EventosEvent Grid Armazenamento de BLOBs e Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Um webhook que usa Microsoft Graph para atualizar uma planilha do Excel.A webhook that uses Microsoft Graph to update an Excel sheet. httpHTTP NenhumNone Microsoft GraphMicrosoft Graph

* Representa filas diferentes* Represents different queues

Esses exemplos não devem ser completos, mas são fornecidos para ilustrar como você pode usar gatilhos e associações juntos.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Definições de associação e gatilhoTrigger and binding definitions

Os gatilhos e as associações são definidos de forma diferente, dependendo da abordagem de desenvolvimento.Triggers and bindings are defined differently depending on the development approach.

PlataformaPlatform Gatilhos e associações são configurados por...Triggers and bindings are configured by...
C#biblioteca de classesC# class library      métodos e parâmetros de decoração C# com atributos     decorating methods and parameters with C# attributes
Todos os outros (incluindo portal do Azure)All others (including Azure portal)      atualizando Function. JSON (esquema)     updating function.json (schema)

O portal fornece uma interface do usuário para essa configuração, mas você pode editar o arquivo diretamente abrindo o Editor avançado disponível por meio da guia integrar da sua função.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

No .NET, o tipo de parâmetro define o tipo de dados para dados de entrada.In .NET, the parameter type defines the data type for input data. 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.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

Para idiomas que são digitados dinamicamente como JavaScript, use a propriedade dataType no arquivo function.json.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Por exemplo, para ler o conteúdo de uma solicitação HTTP em formato binário, defina dataType para binary:For example, to read the content of an HTTP request in binary format, set dataType to binary:

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

Outras opções para dataType são stream e string.Other options for dataType are stream and string.

Direção de associaçãoBinding direction

Todos os disparadores e associações têm uma propriedade direction no arquivo function.json:All triggers and bindings have a direction property in the function.json file:

  • Para gatilhos, a direção sempre é inFor triggers, the direction is always in
  • Associações de entrada e saída usam in e outInput and output bindings use in and out
  • Algumas associações dão suporte a uma direção especial inout.Some bindings support a special direction inout. Se você usar inout, somente o Editor avançado estará disponível por meio da guia integrar no Portal.If you use inout, only the Advanced editor is available via the Integrate tab in the 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.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

Associações com suporteSupported bindings

Esta tabela mostra as associações com suporte nas duas versões principais do tempo de execução de Azure Functions:This table shows the bindings that are supported in the two major versions of the Azure Functions runtime:

TipoType 1.x1.x 2. x12.x1 OfTrigger EntradaInput SaídaOutput
Armazenamento de BlobsBlob storage
BD CosmosCosmos DB
Grade de eventosEvent Grid
Hubs de EventosEvent Hubs
WebHooks de & de HTTPHTTP & webhooks
Hub IoTIoT Hub
Microsoft Graph
Excel tabelas
Microsoft Graph
Excel tables
Arquivos de
OneDrive Microsoft Graph
Microsoft Graph
OneDrive files
Microsoft Graph
Outlook email
Microsoft Graph
Outlook email
Microsoft Graph
events
Microsoft Graph
events
Tokens de
Auth Microsoft Graph
Microsoft Graph
Auth tokens
Aplicativos MóveisMobile Apps
Hubs de NotificaçãoNotification Hubs
Armazenamento de filasQueue storage
SendGridSendGrid
Barramento de ServiçoService Bus
SignalRSignalR
Armazenamento de tabelasTable storage
TimerTimer
TwilioTwilio

1 no tempo de execução da versão 2. x, todas as associações, exceto http e Timer, devem ser registradas.1 In the version 2.x runtime, all bindings except HTTP and Timer must be registered. Consulte registrar extensões de associação.See Register binding extensions. Todas as associações 2. x com suporte também têm suporte na versão 3. x, salvo indicação em contrário.All supported 2.x bindings are also supported in the version 3.x, unless otherwise noted.

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.For information about which bindings are in preview or are approved for production use, see Supported languages.

RecursosResources

Próximas etapasNext steps