Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании функции код триггера для конкретного языка добавляется в проект из набора шаблонов триггеров. Если вы хотите подключить функцию к другим службам с помощью входных или выходных привязок, необходимо добавить в функцию определенные определения привязки. Дополнительные сведения см. в статье Основные понятия триггеров и привязок в Функциях Azure.
Локальная разработка
При локальной разработке функций необходимо обновить код функции, чтобы добавить привязки. Для языков, использующих function.json, Visual Studio Code предоставляет средства для добавления привязок в функцию.
Добавление привязок вручную на основе примеров
При добавлении привязки к существующей функции необходимо добавить атрибуты, относящиеся к привязке, в определение функции в коде.
При добавлении привязки к существующей функции необходимо добавить заметки, относящиеся к привязке, в определение функции в коде.
При добавлении привязки к существующей функции необходимо обновить код функции и добавить определение в файл конфигурации function.json.
При добавлении привязки к существующей функции необходимо обновить определение функции в зависимости от модели:
В следующем примере показано определение функции после добавления привязки выходных данных для хранилища очередей к функции с HTTP-триггером:
Так как функция, активировавшая HTTP, также возвращает http-ответ, функция возвращает MultiResponse
объект, представляющий выходные данные HTTP и очереди.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
В этом примере приведено определение MultiResponse
объекта, включающего выходную привязку:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
При применении этого примера к собственному проекту может потребоваться изменить HttpRequest
на HttpRequestData
и IActionResult
на HttpResponseData
, в зависимости от того, используется ли интеграция ASP.NET Core или нет.
Сообщения отправляются в очередь по завершении выполнения функции. Способ определения выходной привязки зависит от модели процесса. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
@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 |
Триггер Входные данные Выходные данные |
Ссылка |
Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
Анализатор данных Azure |
Входные данные Выходные данные |
Ссылка |
Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
Сетка событий |
Триггер Выходные данные |
Ссылка |
Центры событий |
Триггер Выходные данные |
|
Центр Интернета вещей |
Триггер Выходные данные |
|
HTTP | Триггер | Ссылка |
Хранение очередей |
Триггер Выходные данные |
Ссылка |
RabbitMQ |
Триггер Выходные данные |
|
SendGrid | Выходные данные | |
Сервис Бус |
Триггер Выходные данные |
Ссылка |
СигналР |
Триггер Входные данные Выходные данные |
|
Табличное хранилище данных |
Входные данные Выходные данные |
|
Таймер | Триггер | Ссылка |
Twilio | Выходные данные | Ссылка |
Услуга | Примеры | Образцы |
---|---|---|
Хранилище данных типа BLOB |
Триггер Входные данные Выходные данные |
Ссылка |
Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
Анализатор данных Azure |
Входные данные Выходные данные |
Ссылка |
Azure SQL |
Триггер Входные данные Выходные данные |
|
Сетка событий |
Триггер Выходные данные |
Ссылка |
Центры событий |
Триггер Выходные данные |
|
Центр Интернета вещей |
Триггер Выходные данные |
|
HTTP | Триггер | Ссылка |
Хранение очередей |
Триггер Выходные данные |
Ссылка |
RabbitMQ |
Триггер Выходные данные |
|
SendGrid | Выходные данные | |
Сервис Бус |
Триггер Выходные данные |
Ссылка |
СигналР |
Триггер Входные данные Выходные данные |
|
Табличное хранилище данных |
Входные данные Выходные данные |
|
Таймер | Триггер | Ссылка |
Twilio | Выходные данные | Ссылка |
Услуга | Примеры | Образцы |
---|---|---|
Хранилище данных типа BLOB |
Триггер Входные данные Выходные данные |
Ссылка |
Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
Анализатор данных Azure |
Входные данные Выходные данные |
|
Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
Сетка событий |
Триггер Выходные данные |
Ссылка |
Центры событий |
Триггер Выходные данные |
|
Центр Интернета вещей |
Триггер Выходные данные |
|
HTTP | Триггер | Ссылка |
Хранение очередей |
Триггер Выходные данные |
Ссылка |
RabbitMQ |
Триггер Выходные данные |
|
SendGrid | Выходные данные | |
Сервис Бус |
Триггер Выходные данные |
Ссылка |
СигналР |
Триггер Входные данные Выходные данные |
|
Табличное хранилище данных |
Входные данные Выходные данные |
|
Таймер | Триггер | Ссылка |
Twilio | Выходные данные | Ссылка |
Услуга | Примеры | Образцы |
---|---|---|
Хранилище данных типа BLOB |
Триггер Входные данные Выходные данные |
Ссылка |
Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
Azure SQL |
Триггер Входные данные Выходные данные |
|
Сетка событий |
Триггер Выходные данные |
Ссылка |
Центры событий |
Триггер Выходные данные |
|
Центр Интернета вещей |
Триггер Выходные данные |
|
HTTP | Триггер | Ссылка |
Хранение очередей |
Триггер Выходные данные |
Ссылка |
RabbitMQ |
Триггер Выходные данные |
|
SendGrid | Выходные данные | |
Сервис Бус |
Триггер Выходные данные |
Ссылка |
СигналР |
Триггер Входные данные Выходные данные |
|
Табличное хранилище данных |
Входные данные Выходные данные |
|
Таймер | Триггер | Ссылка |
Twilio | Выходные данные | Ссылка |
Код привязки для Python зависит от версии модели Python.
Услуга | Примеры | Образцы |
---|---|---|
Хранилище данных типа BLOB |
Триггер Входные данные Выходные данные |
Ссылка |
Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
Анализатор данных Azure |
Входные данные Выходные данные |
|
Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
Сетка событий |
Триггер Выходные данные |
Ссылка |
Центры событий |
Триггер Выходные данные |
|
Центр Интернета вещей |
Триггер Выходные данные |
|
HTTP | Триггер | Ссылка |
Хранение очередей |
Триггер Выходные данные |
Ссылка |
RabbitMQ |
Триггер Выходные данные |
|
SendGrid | Выходные данные | |
Сервис Бус |
Триггер Выходные данные |
Ссылка |
СигналР |
Триггер Входные данные Выходные данные |
|
Табличное хранилище данных |
Входные данные Выходные данные |
|
Таймер | Триггер | Ссылка |
Twilio | Выходные данные | Ссылка |
Visual Studio Code
При использовании Visual Studio Code для разработки вашей функции, которая использует файл function.json, расширение Функций Azure может автоматически добавить привязку к существующему файлу function.json. Дополнительные сведения см. в разделе "Добавление входных и выходных привязок".
Портал Azure
При разработке функций на портале Azure вы добавляете входные и выходные привязки на вкладке "Интеграция " для данной функции. Новые привязки добавляются в файл function.json или в атрибуты метода в зависимости от языка. В следующих статьях показаны примеры добавления привязок к существующей функции на портале: