Поделиться через


Подключение функций к службам Azure с помощью привязок

При создании функции в проект добавляется код триггера для конкретного языка из набора шаблонов триггеров. Если вы хотите подключить функцию к другим службам с помощью входных или выходных привязок, необходимо добавить в функцию определения привязки. Дополнительные сведения см. в статье Основные понятия триггеров и привязок в Функциях 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) {

Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".

Пример привязки для модели Node.js версии 4 еще недоступен.

Способ определения выходной привязки зависит от версии модели 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. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".

Пример привязки для модели Node.js версии 4 еще недоступен.

Способ определения выходной привязки зависит от версии модели Node.js. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".

В таблице ниже приведены примеры конкретных типов привязки, и она поможет вам при обновлении существующей функции. Сначала выберите вкладку языка, соответствующего проекту.

Код привязки для C# зависит от конкретной модели процесса.

Service Примеры Примеры
Хранилище BLOB-объектов Триггер
Входные данные
Выходные данные
Ссылка
Azure Cosmos DB Триггер
Входные данные
Выходные данные
Ссылка
Azure Data Explorer Входные данные
Выходные данные
Ссылка
Azure SQL Триггер
Входные данные
Выходные данные
Ссылка
Сетка событий Триггер
Выходные данные
Ссылка
Event Hubs Триггер
Выходные данные
Центр Интернета вещей Триггер
Выходные данные
HTTP Триггер Ссылка
Хранилище очередей Триггер
Выходные данные
Ссылка
RabbitMQ Триггер
Выходные данные
SendGrid Выходные данные
Cлужебная шина Триггер
Выходные данные
Ссылка
SignalR Триггер
Входные данные
Выходные данные
Хранилище таблиц Входные данные
Выходные данные
Таймер Триггер Ссылка
Twilio Выходные данные Ссылка

Код привязки для Python зависит от версии модели Python.

Service Примеры Примеры
Хранилище BLOB-объектов Триггер
Входные данные
Выходные данные
Ссылка
Azure Cosmos DB Триггер
Входные данные
Выходные данные
Ссылка
Azure Data Explorer Входные данные
Выходные данные
Azure SQL Триггер
Входные данные
Выходные данные
Ссылка
Сетка событий Триггер
Выходные данные
Ссылка
Event Hubs Триггер
Выходные данные
Центр Интернета вещей Триггер
Выходные данные
HTTP Триггер Ссылка
Хранилище очередей Триггер
Выходные данные
Ссылка
RabbitMQ Триггер
Выходные данные
SendGrid Выходные данные
Cлужебная шина Триггер
Выходные данные
Ссылка
SignalR Триггер
Входные данные
Выходные данные
Хранилище таблиц Входные данные
Выходные данные
Таймер Триггер Ссылка
Twilio Выходные данные Ссылка

Visual Studio Code

Если вы используете Visual Studio Code для разработки функции, а в функции есть файл function.json, расширение Функций Azure может автоматически добавить привязку в существующий файл function.json. Дополнительные сведения см. в разделе Добавление входных и выходных привязок.

Портал Azure

При разработке функций на портале Azure входные и выходные привязки добавляются на вкладке Интеграция определенной функции. Новые привязки добавляются в файл function.json либо в атрибуты метода в зависимости от языка. В следующих статьях приведены примеры добавления привязок в существующие функции на портале:

Следующие шаги