Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
При создании функции код триггера для конкретного языка добавляется в project из набора шаблонов триггеров. Если вы хотите подключить функцию к другим службам с помощью входных или выходных привязок, необходимо добавить в функцию определенные определения привязки. Дополнительные сведения о привязках см. в разделе концепции триггеров и привязок в Azure Functions.
Локальная разработка
При локальной разработке функций необходимо обновить код функции, чтобы добавить привязки. Для языков, использующих function.json, Visual Studio Code предоставляет средства для добавления привязок в функцию.
Добавление привязок вручную на основе примеров
При добавлении привязки к существующей функции необходимо добавить атрибуты, относящиеся к привязке, в определение функции в коде.
При добавлении привязки к существующей функции необходимо добавить заметки, относящиеся к привязке, в определение функции в коде.
При добавлении привязки к существующей функции необходимо обновить код функции и добавить определение в файл конфигурации function.json.
При добавлении привязки к существующей функции необходимо обновить определение функции в зависимости от модели:
В следующем примере показано определение функции после добавления выходной привязки Queue Storage к функции с HTTP-триггером:
Так как функция, активировавшая HTTP, также возвращает http-ответ, функция возвращает MultiResponse объект, представляющий выходные данные HTTP и очереди.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
В этом примере приведено определение MultiResponse объекта, включающего выходную привязку:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
В этом примере используется интеграция ASP.NET Core. Если вы не используете интеграцию ASP.NET Core, необходимо изменить HttpRequest на HttpRequestData и IActionResult на HttpResponseData.
Сообщения отправляются в очередь по завершении выполнения функции. Способ определения выходной привязки зависит от модели процесса. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
@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) {
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
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' };
}
},
});
Способ определения выходной привязки зависит от версии модели Node.js. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
@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.')
Способ определения выходной привязки зависит от версии модели Python. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
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,
});
Способ определения выходной привязки зависит от версии модели Node.js. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
В следующей таблице приведены примеры конкретных типов привязки, которые можно использовать для обновления существующей функции. Сначала выберите языковую вкладку, соответствующую вашему проекту.
Код привязки для C# зависит от конкретной модели процесса.
| Услуга | Примеры | Образцы |
|---|---|---|
| Blob-хранилище (Blob Storage) |
Триггер Input Output |
Link |
| Azure Cosmos DB |
Триггер Входные данные Выходные данные |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Триггер Input Output |
Link |
| Сетка событий |
Триггер Выходные данные |
Link |
| Центры событий |
Триггер Выходные данные |
|
| IoT Hub |
Триггер Выходные данные |
|
| HTTP | Триггер | Link |
| Хранилище очередей |
Триггер Output |
Link |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Service Bus |
Триггер Выходные данные |
Link |
| Azure SignalR Service |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Input Output |
|
| Таймер | Триггер | Link |
| Twilio | Выходные данные | Link |
| Услуга | Примеры | Образцы |
|---|---|---|
| Blob-хранилище (Blob Storage) |
Триггер Input Output |
Link |
| Azure Cosmos DB |
Триггер Входные данные Выходные данные |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Триггер Input Output |
|
| Сетка событий |
Триггер Выходные данные |
Link |
| Центры событий |
Триггер Выходные данные |
|
| IoT Hub |
Триггер Выходные данные |
|
| HTTP | Триггер | Link |
| Хранилище очередей |
Триггер Output |
Link |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Service Bus |
Триггер Выходные данные |
Link |
| Azure SignalR Service |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Input Output |
|
| Таймер | Триггер | Link |
| Twilio | Выходные данные |
| Услуга | Примеры | Образцы |
|---|---|---|
| Blob-хранилище (Blob Storage) |
Триггер Input Output |
Link |
| Azure Cosmos DB |
Триггер Входные данные Выходные данные |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Триггер Input Output |
Link |
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| IoT Hub |
Триггер Выходные данные |
|
| HTTP | Триггер | Link |
| Хранилище очередей |
Триггер Output |
Link |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Service Bus |
Триггер Выходные данные |
Link |
| Azure SignalR Service |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Input Output |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
| Услуга | Примеры | Образцы |
|---|---|---|
| Blob-хранилище (Blob Storage) |
Триггер Input Output |
|
| Azure Cosmos DB |
Триггер Входные данные Выходные данные |
|
| Azure SQL |
Триггер Input Output |
|
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| IoT Hub |
Триггер Выходные данные |
|
| HTTP | Триггер | Link |
| Хранилище очередей |
Триггер Output |
|
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Service Bus |
Триггер Выходные данные |
|
| Azure SignalR Service |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Input Output |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
Код привязки для Python зависит от версии модели Python.
| Услуга | Примеры | Образцы |
|---|---|---|
| Blob-хранилище (Blob Storage) |
Триггер Input Output |
Link |
| Azure Cosmos DB |
Триггер Входные данные Выходные данные |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Триггер Input Output |
Link |
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| IoT Hub |
Триггер Выходные данные |
|
| HTTP | Триггер | Link |
| Хранилище очередей |
Триггер Output |
|
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Service Bus |
Триггер Выходные данные |
Link |
| Azure SignalR Service |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Input Output |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
код Visual Studio
При использовании кода Visual Studio для разработки функции и функции используется файл function.json, расширение Azure Functions может автоматически добавлять привязку к существующему файлу function.json. Дополнительные сведения см. в разделе "Добавление входных и выходных привязок".
Azure portal
При разработке функций в Azure portal вы добавляете входные и выходные привязки в вкладку Integrate для данной функции. Новые привязки добавляются в файл function.json или в атрибуты метода в зависимости от языка. В следующих статьях показаны примеры добавления привязок к существующей функции на портале: