Обзор типов входных и выходных привязок

Завершено

Доступ к данным и их обработка являются ключевыми задачами во многих программных решениях. Рассмотрим некоторые из следующих сценариев.

  • Вас попросили реализовать способ перемещения входящих данных из хранилища BLOB-объектов Azure в Azure Cosmos DB.
  • Вы хотите публиковать входящие сообщения в очередь для обработки другим компонентом в сети вашей организации.
  • Службе необходимо получить оценки игроков из очереди и обновить интерактивное табло.

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

Что такое привязка?

В функциях Azure входные и выходные привязки реализуют декларативный способ подключения к данным из кода. Они позволяют выполнять согласованную интеграцию с потоками данных в функции. Можно использовать несколько привязок, предоставляющих доступ к элементам данных. Эта интеграция эффективна, так как вы можете подключаться к источникам данных без необходимости кодировать определенную логику подключения (например, подключения к базе данных или интерфейсы веб-API).

Типы привязок

Существует два типа привязок, которые можно использовать с функциями.

  • Привязка к входным данным – подключение к источнику данных. Ваша функция может считывать данные из этих источников входных данных.

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

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

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

Тип привязки определяет, где мы считываем или отправляем данные. Существует привязка для реагирования на веб-запросы и большой выбор привязок для взаимодействия непосредственно с различными службами Azure и сторонними службами.

Тип привязки можно задать как входной, выходной или же указать оба этих типа. Например, функция может записывать данные в выходную привязку хранилища BLOB-объектов, но обновление этого хранилища может запускать другую функцию.

Вот некоторые распространенные типы привязок:

  • Хранилище BLOB-объектов
  • Очереди служебной шины Azure
  • Azure Cosmos DB
  • Центры событий Azure
  • внешние файлы;
  • Внешние таблицы
  • конечные точки HTTP.

Это всего лишь примеры. Есть и другие типы; также существует модель расширяемости функций для добавления дополнительных привязок.

Свойства привязки

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

  • Имя. Определяет параметр функции, через который вы получаете доступ к данным. Например, в входной привязке очереди это свойство является именем параметра функции, который получает содержимое сообщения очереди.

  • Тип — определяет тип привязки. Например, тип данных или службы, с которыми вы хотите взаимодействовать.

  • Направление — указывает, что поток данных направления. Например, это входная или выходная привязка?

Кроме того, большинству типов привязки также требуется четвертое свойство:

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

Создание привязки

Привязки определяются в файле JSON. Привязка настраивается в файле конфигурации функции, который называется function.json и находится в той же папке, что и код функции.

Рассмотрим пример входной привязки.

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

Чтобы создать эту привязку, необходимо выполнить такие действия.

  1. Создать привязку в файле function.json.

  2. Предоставить значение переменной name. В этом примере переменная содержит данные большого двоичного объекта.

  3. Укажите хранилище type. В приведенном выше примере используется хранилище Blob-объектов.

  4. Укажите path, который указывает контейнер и имя элемента, находящегося в нем. Свойство path является обязательным при использовании триггера большого двоичного объекта и должно быть предоставлено в стиле, показанном здесь, с фигурными скобками вокруг части имени файла пути. Этот синтаксис создает выражение привязки, которое позволяет ссылаться на имя большого двоичного объекта в других привязках и в коде функции. В этом примере параметр функции с именем filename будет заполнен именем файла большого двоичного объекта, запустившего функцию.

  5. Укажите имя параметра строки connection, определенное в файле параметров приложения. Оно используется как ключ, чтобы найти строку подключения для подключения к учетной записи хранения.

  6. Определите direction как in. Данные будут считываться из большого двоичного объекта.

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