Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
При создании функции код триггера для конкретного языка добавляется в проект из набора шаблонов триггеров. Если вы хотите подключить функцию к другим службам с помощью входных или выходных привязок, необходимо добавить в функцию определенные определения привязки. Дополнительные сведения см. в статье Основные понятия триггеров и привязок в Функциях 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# зависит от конкретной модели процесса.
| Услуга | Примеры | Образцы |
|---|---|---|
| Хранилище блобов |
Триггер Входные данные Выходные данные |
Ссылка |
| Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
| Анализатор данных Azure |
Входные данные Выходные данные |
Ссылка |
| Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
| Сетка событий |
Триггер Выходные данные |
Ссылка |
| Центры событий |
Триггер Выходные данные |
|
| Центр Интернета вещей |
Триггер Выходные данные |
|
| HTTP | Триггер | Ссылка |
| Хранилище очередей |
Триггер Выходные данные |
Ссылка |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Сервис Бус |
Триггер Выходные данные |
Ссылка |
| Служба Azure SignalR |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Входные данные Выходные данные |
|
| Таймер | Триггер | Ссылка |
| Twilio | Выходные данные | Ссылка |
| Услуга | Примеры | Образцы |
|---|---|---|
| Хранилище блобов |
Триггер Входные данные Выходные данные |
Ссылка |
| Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
| Анализатор данных Azure |
Входные данные Выходные данные |
Ссылка |
| Azure SQL |
Триггер Входные данные Выходные данные |
|
| Сетка событий |
Триггер Выходные данные |
Ссылка |
| Центры событий |
Триггер Выходные данные |
|
| Центр Интернета вещей |
Триггер Выходные данные |
|
| HTTP | Триггер | Ссылка |
| Хранилище очередей |
Триггер Выходные данные |
Ссылка |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Сервис Бус |
Триггер Выходные данные |
Ссылка |
| Служба Azure SignalR |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Входные данные Выходные данные |
|
| Таймер | Триггер | Ссылка |
| Twilio | Выходные данные |
| Услуга | Примеры | Образцы |
|---|---|---|
| Хранилище блобов |
Триггер Входные данные Выходные данные |
Ссылка |
| Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
| Анализатор данных Azure |
Входные данные Выходные данные |
|
| Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| Центр Интернета вещей |
Триггер Выходные данные |
|
| HTTP | Триггер | Ссылка |
| Хранилище очередей |
Триггер Выходные данные |
Ссылка |
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Сервис Бус |
Триггер Выходные данные |
Ссылка |
| Служба Azure SignalR |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Входные данные Выходные данные |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
| Услуга | Примеры | Образцы |
|---|---|---|
| Хранилище блобов |
Триггер Входные данные Выходные данные |
|
| Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
|
| Azure SQL |
Триггер Входные данные Выходные данные |
|
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| Центр Интернета вещей |
Триггер Выходные данные |
|
| HTTP | Триггер | Ссылка |
| Хранилище очередей |
Триггер Выходные данные |
|
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Сервис Бус |
Триггер Выходные данные |
|
| Служба Azure SignalR |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Входные данные Выходные данные |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
Код привязки для Python зависит от версии модели Python.
| Услуга | Примеры | Образцы |
|---|---|---|
| Хранилище блобов |
Триггер Входные данные Выходные данные |
Ссылка |
| Azure Cosmos DB (облачная база данных) |
Триггер Входные данные Выходные данные |
Ссылка |
| Анализатор данных Azure |
Входные данные Выходные данные |
|
| Azure SQL |
Триггер Входные данные Выходные данные |
Ссылка |
| Сетка событий |
Триггер Выходные данные |
|
| Центры событий |
Триггер Выходные данные |
|
| Центр Интернета вещей |
Триггер Выходные данные |
|
| HTTP | Триггер | Ссылка |
| Хранилище очередей |
Триггер Выходные данные |
|
| RabbitMQ |
Триггер Выходные данные |
|
| SendGrid | Выходные данные | |
| Сервис Бус |
Триггер Выходные данные |
Ссылка |
| Служба Azure SignalR |
Триггер Входные данные Выходные данные |
|
| Хранилище таблиц |
Входные данные Выходные данные |
|
| Таймер | Триггер | |
| Twilio | Выходные данные |
Visual Studio Code
При использовании Visual Studio Code для разработки вашей функции, которая использует файл function.json, расширение Функций Azure может автоматически добавить привязку к существующему файлу function.json. Дополнительные сведения см. в разделе "Добавление входных и выходных привязок".
Портал Azure
При разработке функций на портале Azure вы добавляете входные и выходные привязки на вкладке "Интеграция " для данной функции. Новые привязки добавляются в файл function.json или в атрибуты метода в зависимости от языка. В следующих статьях показаны примеры добавления привязок к существующей функции на портале: