Conectar funções a serviços do Azure usando associações

Quando você cria uma função, um código de gatilho específico a um idioma é adicionado no projeto de um conjunto de modelos de gatilho. Se você quiser conectar sua função a outros serviços usando associações de entrada ou saída, você precisará adicionar definições de associação específicas em sua função. Para saber mais sobre associações, confira Conceitos de gatilhos e de associações do Azure Functions.

Desenvolvimento local

Ao desenvolver funções localmente, você precisa atualizar o código da função para adicionar associações. Para linguagens que usam function.json, o Visual Studio Code fornece ferramentas para adicionar associações a uma função.

Adicionar associações manualmente com base em exemplos

Ao adicionar uma associação a uma função existente, você precisa adicionar atributos específicos de associação à definição de função no código.

Ao adicionar uma associação a uma função existente, você precisa adicionar anotações específicas de associação à definição de função no código.

Ao adicionar uma associação a uma função existente, você precisa atualizar o código de função e adicionar uma definição ao arquivo de configuração function.json.

Ao adicionar uma associação a uma função existente, você precisa atualizar a definição de função, dependendo do modelo:

Você precisa adicionar anotações específicas de associação à definição de função no código.

O exemplo a seguir mostra a definição de função depois de adicionar uma Associação de saída do Armazenamento de Filas a uma função de gatilho HTTP:

Como uma função de gatilho HTTP também retorna uma resposta HTTP, a função retorna um objeto MultiResponse, que representa a saída de HTTP e da fila.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Veja a seguir a definição do objeto MultiResponse que inclui a associação de saída:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Ao aplicar esse exemplo ao seu projeto, talvez seja necessário alterar HttpRequest para HttpRequestData e IActionResult para HttpResponseData, dependendo se estiver usando a Integração com o ASP.NET Core ou não.

As mensagens são enviadas para a fila quando a função é concluída. A maneira como você define a associação de saída depende do seu modelo de processo. Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

Associação de exemplo para o modelo v4 do Node.js ainda não disponível.

A maneira como você define a associação de saída depende da versão do modelo do Node.js. Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

A maneira como você define a associação de saída depende da versão do modelo do Python. Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

Associação de exemplo para o modelo v4 do Node.js ainda não disponível.

A maneira como você define a associação de saída depende da versão do modelo do Node.js. Para obter mais informações, incluindo links para o código de associação de exemplo ao qual você pode se referir, consulte Adicionar associações a uma função.

Use a tabela a seguir para encontrar exemplos de tipos de ligação específicos que você pode usar para orientá-lo na atualização de uma função existente. 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

Visual Studio Code

Quando você usa o Visual Studio Code para desenvolver sua função e sua função usa um arquivo “function.json”, a extensão Azure Functions pode adicionar automaticamente uma associação a um arquivo “function.json” existente. Para saber mais, veja Adicionar associações de entrada e saída.

Portal do Azure

Ao desenvolver as funções no portal do Azure, você adiciona associações de entrada e saída na guia Integrar para uma determinada função. As novas associações são adicionadas ao arquivo “function.json” ou aos atributos do método, dependendo de sua linguagem. Os artigos a seguir mostram exemplos de como adicionar associações a uma função existente no Portal:

Próximas etapas