Основные понятия. Триггеры и привязки в функциях Azure

В этой статье вы узнаете о высокоуровневых понятиях, связанных с триггерами и привязками функций.

Триггеры — это причина запуска функции. Триггер определяет способ вызова функции, при этом функция должна иметь только один триггер. С триггерами связаны данные, которые обычно являются полезными данными функции.

Привязка к функции — это способ декларативного подключения другого ресурса к функции. Привязки могут быть подключены как входные привязки, выходные привязки или и то, и другое. Данные привязок предоставляются функции в качестве параметров.

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

Триггеры и привязки позволяют избежать жестко запрограммированного доступа к другим службам. Функция получает нужные данные (например, содержимое сообщения из очереди) в виде параметров. Вы отправляете данные (например, для создания в очереди сообщения) с использованием возвращаемого значения функции.

Рассмотрим следующие примеры реализации различных функций.

Пример сценария Триггер Входные привязки Выходные привязки
Поступает новое сообщение очереди, которое запускает функцию для записи в другую очередь. Очередь* Не допускается Очередь*
Запланированное задание считывает содержимое BLOB-объектов служба хранилища и создает новый документ Azure Cosmos DB. Таймер Хранилище BLOB-объектов Azure Cosmos DB
Сетка событий используется для чтения изображения из служба хранилища BLOB-объектов и документа из Azure Cosmos DB для отправки сообщения электронной почты. Сетка событий Служба хранилища BLOB-объектов и Azure Cosmos DB SendGrid
Веб-перехватчик использует Microsoft Graph для обновления листа Excel. HTTP Не допускается Microsoft Graph

* Представляет разные очереди

Эти примеры не являются исчерпывающими, но позволяют показать, как можно использовать триггеры и привязки вместе.

Определения триггеров и привязок

Триггеры и привязки определяются по-разному в зависимости от языка разработки.

Язык Триггеры и привязки настраиваются путем...
Библиотека классов C#      присвоения методов и параметров с помощью атрибутов C#
Java      присвоения методов и параметров с помощью примечаний Java
JavaScript/PowerShell/Python/TypeScript      обновление function.json (схема)

Для языков, которые используют function.json, портал предоставляет пользовательский интерфейс для добавления привязок на вкладке Интеграция. Вы также можете изменить файл непосредственно на портале на вкладке Код + тест функции. Visual Studio Code позволяет легко добавить привязку а файл function.json с помощью удобного набора запросов.

В .NET и Java тип параметра определяет тип входных данных. Например, используйте string для привязки к тексту триггера очереди, массив байтов — для чтения в двоичном формате и настраиваемый тип — для десериализации объекта. Так как функции библиотеки классов .NET и функции Java не используют function.json для определений привязки, их нельзя создать и изменить на портале. Функции редактирования C# на портале работают на основе скрипта C#, который использует файл function.json вместо атрибутов.

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

В языках с динамическим типизированием, таких как JavaScript, используйте свойство dataType в файле function.json. Например, задайте для dataType значение binary, чтобы прочитать содержимое HTTP-запроса в двоичном формате.

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Другие варианты для dataType — stream и string.

Направление привязки

Все триггеры и привязки имеют свойство direction в файле function.json:

  • Для триггеров направление всегда входящее (in).
  • Для входных и выходных привязок используется как входящее (in), так и исходящее (out) направление.
  • Некоторые привязки поддерживают специальное направление inout. При использовании inout доступен только Расширенный редактор на вкладке портала Интеграция.

Если вы используете для настройки триггеров и привязок атрибуты в библиотеке классов, направление задается в конструкторе атрибута или вычисляется по типу параметра.

Добавление привязок к функции

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

Поддерживаемые привязки

В этой таблице показаны привязки, которые поддерживаются в двух основных версиях среды выполнения Функций Azure.

Тип 1.x1 2.x и выше2 Триггер Входные данные Выходные данные
Хранилище BLOB-объектов
Azure Cosmos DB
Обозреватель данных Azure
Azure SQL
Dapr4
Сетка событий
Центры событий
HTTP и веб-перехватчики
Центр IoT
Kafka3
Мобильные приложения
Центры уведомлений
Хранилище очередей
Redis
RabbitMQ3
SendGrid
Служебная шина
SignalR
Хранилище таблиц
Таймер
Twilio

1Поддержка завершится для среды выполнения Функции Azure версии 1.x 14 сентября 2026 г. Настоятельно рекомендуется перенести приложения в версию 4.x для полной поддержки.

2 Начиная с среды выполнения 2.x, все привязки, кроме HTTP и таймера, должны быть зарегистрированы. Ознакомьтесь с разделом Регистрация расширений привязки.

3 триггера не поддерживаются в плане потребления. Требуются триггеры, управляемые средой выполнения.

4 Поддерживается только в Kubernetes, IoT Edge и других автономных режимах.

Сведения о том, какие привязки доступны в предварительной версии или утверждены для использования в рабочей среде, см. в статье Поддерживаемые языки в решении "Функции Azure".

Конкретные версии расширения привязки поддерживаются только в то время как поддерживается базовый пакет SDK службы. Изменения в поддержке в базовой версии пакета SDK службы влияют на поддержку используемого расширения.

Примеры кода привязок

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

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

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

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

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

Настраиваемые привязки

Вы можете создавать входные и выходные привязки. Привязки должны создаваться в .NET, но их можно использовать на любом поддерживаемом языке. Подробнее о создании настраиваемых привязок см. в разделе Создание настраиваемых входных и выходных привязок.

Ресурсы

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