Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Quando crias uma função, o código de trigger específico da linguagem é adicionado ao teu projeto a partir de um conjunto de modelos de trigger. Se você quiser conectar sua função a outros serviços usando ligações de entrada ou saída, você precisa adicionar definições de vinculação específicas em sua função. Para saber mais sobre ligações, veja disparadores e conceitos de ligaçõ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, Visual Studio Code fornece ferramentas para adicionar bindings 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 vinculaçã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 vinculaçã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 da 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 da função, dependendo do seu modelo:
O exemplo seguinte mostra a definição da função após adicionar uma vinculação de saída para Queue Storage a uma função acionada por HTTP:
Como uma função acionada por HTTP também retorna uma resposta HTTP, a função retorna um MultiResponse objeto, que representa a saída HTTP e a saída da fila.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
Este exemplo é a definição do objeto MultiResponse que inclui a ligação de saída:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Este exemplo utiliza integração ASP.NET Core. Se não estiveres a usar ASP.NET Core integração, tens de mudar HttpRequest para HttpRequestData e IActionResult para HttpResponseData.
As mensagens são enviadas para a fila quando a função é concluída. A maneira como você define a ligação de saída depende do seu modelo de processo. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligaçõ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 exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
A maneira como você define a ligação de saída depende da versão do seu modelo de Node.js. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligaçõ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 ligação de saída depende da versão do seu modelo Python. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
A maneira como você define a ligação de saída depende da versão do seu modelo de Node.js. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Use a tabela a seguir para encontrar exemplos de tipos de associação específicos que você pode usar para orientá-lo na atualização de uma função existente. Primeiro, escolha o separador de língua que corresponde ao seu projecto.
O código de vinculação para C# depende do modelo de processo específico.
| Serviço | Exemplos | Exemplos |
|---|---|---|
| Armazenamento Blob |
Acionador Input Output |
Link |
| Azure Cosmos DB |
Desencadeador Entrada Realização |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Acionador Input Output |
Link |
| Event Grid |
Desencadeador Realização |
Link |
| Hubs de Eventos |
Desencadeador Realização |
|
| IoT Hub |
Desencadeador Realização |
|
| HTTP | Desencadeador | Link |
| Armazenamento em Fila |
Acionador Output |
Link |
| RabbitMQ |
Desencadeador Realização |
|
| SendGrid | Realização | |
| Service Bus |
Desencadeador Realização |
Link |
| Azure SignalR Service |
Desencadeador Entrada Realização |
|
| Armazenamento de Tabelas |
Input Output |
|
| Temporizador | Desencadeador | Link |
| Twilio | Realização | Link |
| Serviço | Exemplos | Exemplos |
|---|---|---|
| Armazenamento Blob |
Acionador Input Output |
Link |
| Azure Cosmos DB |
Desencadeador Entrada Realização |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Acionador Input Output |
|
| Event Grid |
Desencadeador Realização |
Link |
| Hubs de Eventos |
Desencadeador Realização |
|
| IoT Hub |
Desencadeador Realização |
|
| HTTP | Desencadeador | Link |
| Armazenamento em Fila |
Acionador Output |
Link |
| RabbitMQ |
Desencadeador Realização |
|
| SendGrid | Realização | |
| Service Bus |
Desencadeador Realização |
Link |
| Azure SignalR Service |
Desencadeador Entrada Realização |
|
| Armazenamento de Tabelas |
Input Output |
|
| Temporizador | Desencadeador | Link |
| Twilio | Realização |
| Serviço | Exemplos | Exemplos |
|---|---|---|
| Armazenamento de Blobs |
Acionador Input Output |
Link |
| Azure Cosmos DB |
Desencadeador Entrada Realização |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Trigger Input Output |
Link |
| Event Grid |
Desencadeador Realização |
|
| Hubs de Eventos |
Desencadeador Realização |
|
| IoT Hub |
Desencadeador Realização |
|
| HTTP | Desencadeador | Link |
| Armazenamento em Fila |
Acionador Output |
Link |
| RabbitMQ |
Desencadeador Realização |
|
| SendGrid | Realização | |
| Service Bus |
Desencadeador Realização |
Link |
| Azure SignalR Service |
Desencadeador Entrada Realização |
|
| Armazenamento de Tabelas |
Input Output |
|
| Temporizador | Desencadeador | |
| Twilio | Realização |
| Serviço | Exemplos | Exemplos |
|---|---|---|
| Armazenamento de Blobs |
Acionador Input Output |
|
| Azure Cosmos DB |
Desencadeador Entrada Realização |
|
| Azure SQL |
Acionador Input Output |
|
| Event Grid |
Desencadeador Realização |
|
| Hubs de Eventos |
Desencadeador Realização |
|
| IoT Hub |
Desencadeador Realização |
|
| HTTP | Desencadeador | Link |
| Armazenamento em Fila |
Trigger Output |
|
| RabbitMQ |
Desencadeador Realização |
|
| SendGrid | Realização | |
| Service Bus |
Desencadeador Realização |
|
| Azure SignalR Service |
Desencadeador Entrada Realização |
|
| Armazenamento de Tabelas |
Input Output |
|
| Temporizador | Desencadeador | |
| Twilio | Realização |
O código de vinculação para Python depende da versão do modelo Python.
| Serviço | Exemplos | Exemplos |
|---|---|---|
| Armazenamento Blob |
Acionador Input Output |
Link |
| Azure Cosmos DB |
Desencadeador Entrada Realização |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Acionador Input Output |
Link |
| Event Grid |
Desencadeador Realização |
|
| Hubs de Eventos |
Desencadeador Realização |
|
| IoT Hub |
Desencadeador Realização |
|
| HTTP | Desencadeador | Link |
| Armazenamento em Fila |
Acionador Output |
|
| RabbitMQ |
Desencadeador Realização |
|
| SendGrid | Realização | |
| Service Bus |
Desencadeador Realização |
Link |
| Azure SignalR Service |
Desencadeador Entrada Realização |
|
| Armazenamento de Tabelas |
Input Output |
|
| Temporizador | Desencadeador | |
| Twilio | Realização |
Visual Studio Code
Quando usas Visual Studio Código para desenvolver a tua função e a tua função usa um ficheiro function.json, a extensão Azure Functions pode adicionar automaticamente uma ligação a um ficheiro de function.json existente. Para saber mais, consulte Adicionar ligações de entrada e saída.
Azure portal
Quando desenvolves as tuas funções no Azure portal, adicionas ligações de entrada e saída no separador Integrar para uma dada função. As novas associações são adicionadas ao arquivo function.json ou aos atributos do método, dependendo do seu idioma. Os artigos a seguir mostram exemplos de como adicionar associações a uma função existente no portal: