Обзор типов входных и выходных привязок
Доступ к данным и их обработка являются ключевыми задачами во многих программных решениях. Рассмотрим некоторые из следующих сценариев.
- Вам предлагается реализовать способ перемещения входящих данных из Хранилище BLOB-объектов Azure в Azure Cosmos DB.
- Вы хотите публиковать входящие сообщения в очередь для обработки другим компонентом в сети вашей организации.
- Службе необходимо получить оценки игроков из очереди и обновить интерактивное табло.
Все это примеры перемещения данных. Источник и назначение данных в каждом сценарии отличаются, но имеют похожий шаблон: Вы подключаетесь к источнику данных, считываете и записываете данные. Функции Azure помогают выполнять интеграцию с данными и службами с помощью привязок.
Что такое привязка?
В функциях Azure входные и выходные привязки реализуют декларативный способ подключения к данным из кода. Они позволяют выполнять согласованную интеграцию с потоками данных в функции. Можно использовать несколько привязок, предоставляющих доступ к элементам данных. Эта интеграция эффективна, так как вы можете подключаться к источникам данных без необходимости кодировать определенную логику подключения (например, подключения к базе данных или интерфейсы веб-API).
Типы привязок
Существует два типа привязок, которые можно использовать с функциями.
Входная привязка: подключается к источнику данных. Ваша функция может считывать данные из этих источников входных данных.
Выходная привязка: подключается к назначению данных. Ваша функция может записывать данные в эти назначения выходных данных.
Существуют также триггеры, которые являются специальными типами входных привязок, которые вызывают выполнение функции. Например, уведомление "Сетка событий Azure" можно настроить как триггер. При возникновении события функция запускается.
Типы поддерживаемых привязок
Тип привязки определяет, где мы считываем или отправляем данные. Существует привязка для реагирования на веб-запросы и большой выбор привязок для взаимодействия непосредственно с различными службами Azure и сторонними службами.
Тип привязки можно задать как входной, выходной или же указать оба этих типа. Например, функция может записывать данные в выходную привязку хранилища BLOB-объектов, но обновление этого хранилища может запускать другую функцию.
Вот некоторые распространенные типы привязок:
- Хранилище BLOB-объектов
- Очереди служебной шины Azure
- Azure Cosmos DB (облачная база данных)
- Центры событий Azure
- внешние файлы;
- Внешние таблицы
- конечные точки HTTP.
Это всего лишь примеры. Есть и другие типы; также существует модель расширяемости функций для добавления дополнительных привязок.
Свойства привязки
Три свойства необходимы во всех привязках, хотя вам может потребоваться предоставить дополнительные свойства на основе типа привязки и хранилища, используемого вами.
Имя. Определяет параметр функции, с помощью которого вы обращаетесь к данным. Например, в входной привязке очереди это свойство является именем параметра функции, который получает содержимое сообщения очереди.
Тип: определяет тип привязки. Например, тип данных или службы, с которыми вы хотите взаимодействовать.
Направление: указывает направление, в котором происходит поток данных. Например, это входная или выходная привязка?
Кроме того, большинству типов привязки также требуется четвертое свойство:
- Подключение. Предоставляет имя ключа параметра приложения, содержащего строку подключения. Привязки используют строки подключения, хранящиеся в параметрах приложения, чтобы хранить секреты отдельно от кода функций. Строки подключения делают код более настраиваемым и безопасным.
Создание привязки
Привязки определяются в файле JSON. Привязка настраивается в файле конфигурации функции, который называется function.json и находится в той же папке, что и код функции.
Рассмотрим пример входной привязки:
...
{
"name": "headshotBlob",
"type": "blob",
"path": "thumbnail-images/{filename}",
"connection": "HeadshotStorageConnection",
"direction": "in"
},
...
Чтобы создать эту привязку, необходимо выполнить такие действия.
Создайте привязку в файле function.json .
Предоставить значение переменной
name
. В этом примере переменная содержит данные большого двоичного объекта.Укажите хранилище
type
. В приведенном выше примере используется хранилище Blob-объектов.Укажите
path
, который указывает контейнер и имя элемента, находящегося в нем. Свойствоpath
необходимо при использовании триггера двоичного большого объекта и должно быть оформлено, как показано здесь, с фигурными скобками вокруг части пути, касающейся имени файла. Этот синтаксис создает выражение привязки, позволяющее ссылаться на имя объекта Blob в других привязках и в коде вашей функции. В этом примере параметр функции с именем filename будет заполнен именем файла объекта, который активировал функцию.Укажите имя параметра строки
connection
, определенное в файле параметров приложения. Имя используется в качестве ключа для поиска строка подключения для подключения к учетной записи хранения.Определите
direction
какin
. Данные будут считываться из большого двоичного объекта.
В вашей функции привязки используются для подключения к данным. В этом примере мы использовали входную привязку для подключения пользовательских изображений для обработки с помощью функции в качестве эскизов.