Подключение к хранилищу BLOB-объектов Azure из рабочих процессов Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

В этом руководстве показано, как получить доступ к учетной записи хранения BLOB-объектов Azure и контейнеру из рабочего процесса в Azure Logic Apps с помощью соединителя хранилища BLOB-объектов Azure. Этот коннектор предоставляет триггеры и действия для операций с BLOB-объектами, которые может использовать ваш рабочий процесс. Затем можно создать автоматизированные рабочие процессы, которые выполняются при активации событий в контейнере хранилища или в других системах, а также выполнять действия для работы с данными в контейнере хранилища. Например, вы можете получить доступ к файлам, хранящимся в качестве BLOB-объектов в учетной записи хранения Azure, и управлять ими.

Вы можете подключиться к хранилищу BLOB-объектов Azure из рабочего процесса в мультитенантном приложении логики потребления или в однотенантном приложении логики Уровня "Стандартный". Хотя рабочие процессы типа "Потребление" предлагают только управляемую версию соединителя, стандартные рабочие процессы предлагают как версии встроенных соединителей, так и управляемые версии соединителей.

Технический справочник по соединителю

Соединитель Хранилище BLOB-объектов Azure имеет разные версии в зависимости от типа приложения логики и среды размещения.

Приложение логики Среда Версия соединителя
Потребление Azure Logic Apps с несколькими клиентами Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общий". Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю Хранилище BLOB-объектов Azure
- Управляемые соединители в Azure Logic Apps
Стандартные Azure Logic Apps для одного клиента и Среда службы приложений v3 (только для планов Windows) Управляемый соединитель (размещено в Azure), который отображается в коллекции соединителей в разделе "Общий" и встроенный соединитель, основанный на поставщике услуг, и отображается в коллекции соединителей в разделе "Встроенный". Встроенная версия отличается следующим образом:

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

— Встроенная версия может напрямую получить доступ к виртуальным сетям Azure.

Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю Хранилище BLOB-объектов Azure
- Справочник по встроенному соединителю Azure Blob
- Встроенные соединители в Azure Logic Apps

Ограничения

  • Действия управляемого соединителя Хранилище BLOB-объектов Azure могут читать или записывать файлы размером 50 МБ или меньше. Для обработки файлов размером более 50 МБ, но не превышающих 1024 МБ, действия хранилища BLOB-объектов Azure поддерживают разбиение сообщений. Действие хранилища BLOB-объектов с именем Get BLOB-содержимое неявно использует фрагментирование.

  • Хотя триггеры Хранилище BLOB-объектов Azure — управляемые и встроенные — не поддерживают разбиение на фрагменты, встроенные триггеры могут обрабатывать файлы размером 50 МБ и более. Однако при запросе содержимого файла управляемого триггера триггер выбирает только файлы размером 50 МБ или меньше. Чтобы получить файлы размером более 50 МБ, следуйте приведенному ниже шаблону:

    1. Используйте триггер blob-объекта, который возвращает свойства файла, например При добавлении или изменении blob-объекта (только свойства).

    2. После триггера используйте действие управляемого соединителя Хранилища BLOB-объектов Azure с именем Get blob content, которое считывает файл целиком и неявно использует разбиение на фрагменты.

  • Ограничения триггера Хранилища BLOB-объектов Azure

    • Триггер управляемого соединителя ограничен 30 000 BLOB-объектами в виртуальной папке опроса.
    • Встроенный триггер коннектора основан на триггере опроса Хранилище BLOB-объектов Azure for Функции Azure, который работает на основе «лучшего усилия» и не поддерживает высокий масштаб. Для получения дополнительной информации см. polling and latency for Azure Blob storage trigger for Функции Azure. Если вам нужна более быстрая или надёжная обработка blob, попробуйте триггер Сетка событий Azure.

    Если лимит превышен, новый BLOB-объект может не запустить рабочий процесс, поэтому срабатывание триггера пропускается.

Предварительные требования

Добавление триггера BLOB-объекта

В рабочем процессе потребления доступен только разрешённый соединитель Хранилище BLOB-объектов Azure. В стандартном рабочем процессе доступны управляемый разъем хранилища BLOB-объектов Azure и встроенный соединитель. Хотя каждая версия соединителя предоставляет только один триггер для хранилища Blob в Azure, название триггера различается следующим образом: оно зависит от того, используется ли рабочий процесс "Операционный" или "Стандарт".

Приложение логики Версия соединителя Имя триггера Описание
Потребление Только управляемый соединитель При добавлении или изменении BLOB-объекта (только свойства) Триггер срабатывает при добавлении или обновлении свойств BLOB-объекта в корневой папке вашего контейнера хранилища. При настройке управляемого триггера существующие BLOB-объекты в вашем контейнере хранилища игнорируются.
Стандартный Встроенный соединитель


Управляемый соединитель
Встроенная: при добавлении или обновлении большого двоичного объекта

Управление: при добавлении или изменении блоба (только свойства)
Встроенный: триггер срабатывает, когда объект blob добавляется или обновляется в контейнере хранилища, и также активируется для всех вложенных папок в контейнере, а не только в корневой папке. Когда вы настраиваете встроенный триггер, встроенный вариант обрабатывает все существующие BLOB-объекты в контейнере хранилища.

Управляемый: триггер запускается при добавлении или обновлении свойств blob в корневой папке контейнера хранилища. При настройке управляемого триггера существующие BLOB-объекты в вашем контейнере хранилища игнорируются.

Следующие шаги используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания рабочих процессов приложения логики:

  • Рабочие процессы приложения логики потребления: Visual Studio Code
  • Стандартные рабочие процессы приложения логики: Visual Studio Code
  1. В портал Azure откройте ресурс приложения логики потребления.

  2. В меню боковой панели ресурсов в разделе "Средства разработки" выберите конструктор, чтобы открыть пустой рабочий процесс.

  3. Добавьте управляемый триггер хранилища BLOB-объектов Azure для вашего сценария, выполнив общие действия по добавлению триггера в рабочий процесс.

    Этот пример продолжается с триггером Хранилище BLOB-объектов Azure с именем «При добавлении или изменении BLOB-объекта, только свойства».

  4. При появлении запроса укажите следующие сведения о подключении к учетной записи хранения. По завершении нажмите Создать.

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

    Например, это подключение использует проверку подлинности access Key и предоставляет значение ключа доступа для учетной записи хранения вместе со следующими значениями свойств:

    Свойство Обязательное поле значение Описание
    Имя учетной записи службы хранилища Azure или конечная точка BLOB-объекта Да, но только для проверки подлинности ключа доступа < имя учетной записи хранилища> Имя учетной записи хранения Azure, в которой существует контейнер BLOB-объектов.

    Примечание: Чтобы найти имя учетной записи хранения, откройте ресурс учетной записи хранения в портале Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите ключи доступа. В поле Имя учетной записи хранилища скопируйте и сохраните имя.
    ключ доступа к учетной записи службы хранилища Azure Да, но только для проверки подлинности ключа доступа < ключ доступа к учетной записи хранения> Ключ доступа для учетной записи хранения Azure.

    Примечание: чтобы найти ключ доступа, откройте ресурс учётной записи хранения на портале Azure. В меню ресурса в разделе Безопасность и сеть выберите Ключи доступа>key1>Показать. Скопируйте и сохраните значение первичного ключа.

    Снимок экрана: рабочий процесс потребления, триггер хранилища BLOB-объектов Azure и пример сведений о подключении.

  5. После появления поля сведений о триггере укажите необходимые сведения.

    Для значения свойства Container выберите значок папки, чтобы найти нужный контейнер BLOB-объектов. Или введите путь вручную, используя синтаксис /<container-name>, например:

    Снимок экрана, на котором показан рабочий процесс потребления с триггером хранилища Blob-объектов Azure и пример информации о триггере.

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

    Дополнительные сведения см. в статье Свойства триггера управляемого соединителя Хранилища BLOB-объектов Azure.

  7. Добавьте любые другие действия, необходимые рабочему процессу.

  8. Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.

Добавить действие Blob

В рабочем процессе потребления доступен только разрешённый соединитель Хранилище BLOB-объектов Azure. В стандартном рабочем процессе доступны управляемый разъем хранилища BLOB-объектов Azure и встроенный соединитель. Каждая версия предоставляет несколько разных действий с разными названиями, в зависимости от того, используется ли у вас рабочий процесс «Потребление» или «Стандартный». Например, у управляемых и встроенных версий соединителей есть собственные действия для получения метаданных файла и получения содержимого файла.

  • Действия управляемого соединителя доступны в рабочих процессах "Потребление" или "Стандартный".

  • Встроенные действия соединителя доступны только в стандартных рабочих процессах.

Следующие действия используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания рабочих процессов приложения логики:

  1. В портал Azure откройте ресурс приложения логики потребления.

  2. В меню боковой панели ресурсов в разделе "Средства разработки" выберите конструктор, чтобы открыть рабочий процесс.

    В этих шагах предполагается, что рабочий процесс уже имеет триггер.

    В этом примере используется триггер повторения.

  3. Добавьте управляемую операцию Хранилища Blob Azure для вашего сценария, следуя общим шагам по добавлению операции в рабочий процесс.

    В этом примере далее используется действие с именем Get blob content.

  4. При появлении запроса укажите следующие сведения для подключения. По завершении нажмите Создать.

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

    Например, это подключение использует проверку подлинности access Key и предоставляет значение ключа доступа для учетной записи хранения вместе со следующими значениями свойств:

    Свойство Обязательное поле значение Описание
    Имя учетной записи службы хранилища Azure или конечная точка BLOB-объекта Да, но только для проверки подлинности ключа доступа < имя учетной записи хранилища> Имя учетной записи хранения Azure, в которой находится ваш контейнер BLOB-объектов.

    Примечание: Чтобы найти имя учетной записи хранения, откройте ресурс учетной записи хранения в портале Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите ключи доступа. В поле Имя учетной записи хранилища скопируйте и сохраните имя.
    ключ доступа к учетной записи службы хранилища Azure Да, но только для проверки подлинности ключа доступа < ключ доступа к учетной записи хранения> Ключ доступа для учетной записи хранения Azure.

    Примечание: чтобы найти ключ доступа, откройте ресурс учётной записи хранения на портале Azure. В меню ресурса в разделе Безопасность и сеть выберите Ключи доступа>key1>Показать. Скопируйте и сохраните значение первичного ключа.

    Снимок экрана: рабочий процесс потребления, действие BLOB-объектов Azure и примеры сведений о подключении.

  5. В поле сведений о действии укажите необходимые сведения.

    Например, в действии Получить содержимое BLOB-объекта укажите имя учетной записи хранилища. Для значения свойства Blob щелкните значок папки, чтобы выбрать контейнер или папку в хранилище. Путь также можно ввести вручную.

    Задача Синтаксис пути к BLOB-объекту
    Получите содержимое определенного BLOB-объекта в корневой папке. /<container-name>/<blob-name>
    Получите содержимое из определенного большого двоичного объекта в вложенной папке. /<container-name>/<subfolder>/<blob-name>

    В следующем примере показана настройка действия, получающая содержимое из BLOB-объекта в корневой папке:

    Снимок экрана, показывающий рабочий процесс потребления с настройкой действия с Blob-объектами для корневой папки.

    В следующем примере показана настройка действия для извлечения содержимого из BLOB-объекта в подпапке:

    Снимок экрана: рабочий процесс потребления с настройкой действия BLOB-объектов для вложенной папки.

  6. Добавьте любые другие действия, необходимые рабочему процессу.

  7. Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.

Доступ к учетным записям хранения, защищенным брандмауэром

Вы можете добавить сетевую безопасность в учетную запись хранения Azure, запретив доступ с помощью брандмауэра и правил брандмауэра. Однако такая настройка создает сложности для Azure и других служб Майкрософт, которым требуется доступ к учетной записи хранения. Локальная связь в центре обработки данных абстрагирует внутренние IP-адреса, поэтому только разрешение трафика через IP-адреса может быть недостаточно, чтобы разрешить обмен данными через брандмауэр. В зависимости от того, какой коннектор Хранилище BLOB-объектов Azure вы используете, доступны следующие параметры:

Доступ к учетным записям хранения в других регионах

Если вы не используете аутентификацию с использованием управляемого удостоверения, рабочие процессы Logic Apps не могут получать прямой доступ к учетным записям хранения, защищённым брандмауэрами, если и ресурс приложения логики, и учетная запись хранения находятся в одном регионе. В качестве обходного решения поместите ресурс приложения логики в регион, отличный от региона вашей учетной записи хранения. Затем предоставьте доступ к исходящим IP-адресам для управляемых соединителей в вашем регионе.

Примечание.

Это решение не применимо к подключению «Хранилище таблиц Azure» и подключению «Хранилище очередей Azure». Вместо этого для доступа к хранилищу таблиц или хранилищу очередей используйте встроенный триггер HTTP и действие.

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

  1. Обратите внимание на исходящие IP-адреса управляемого соединителя для региона ресурса приложения логики.

  2. В портале Azure найдите и откройте ресурс своей учётной записи хранения.

  3. В меню боковой панели ресурсов в разделе "Безопасность и сеть" выберите "Сеть".

    1. В разделе "Доступ к общедоступной сети" выберите "Включено" из выбранных виртуальных сетей и IP-адресов.

    2. В разделе Брандмауэр добавьте IP-адреса или диапазоны, которым требуется доступ. Если вам нужно получить доступ к учетной записи хранения с компьютера, выберите " Добавить IP-адрес клиента".

      Снимок экрана: страница сетевых настроек облачного хранилища BLOB-объектов на портале Azure, показывающая настройки брандмауэра для добавления IP-адресов и диапазонов в список разрешённых.

    3. По завершении выберите Сохранить.

Доступ к учетным записям хранения через доверенную виртуальную сеть

  • Если приложение логики и учетная запись хранения существуют в одном регионе:

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

  • Если приложение логики и учетная запись хранения существуют в разных регионах:

    Создайте частную конечную точку в учетной записи хранения для доступа.

Доступ к учетным записям хранения через интеграцию виртуальной сети

  • Если приложение логики и учетная запись хранения существуют в одном регионе:

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

  • Если приложение логики и учетная запись хранения существуют в разных регионах:

    Создайте частную конечную точку в учетной записи хранения для доступа.

Доступ к хранилищу BLOB в том же регионе с удостоверениями, управляемыми системой

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

Примечание.

Это решение не применимо к приложениям логики категории "Стандартный". Даже если вы используете управляемое удостоверение, назначаемое системой, в приложении логики уровня Standard, управляемый соединитель Хранилище BLOB-объектов Azure не может подключиться к учётной записи хранения в том же регионе.

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

  1. Настройка доступа к учетной записи хранения

  2. Создание назначения ролей для приложения логики

  3. Включение поддержки управляемой личностью в логическом приложении

Примечание.

Это решение имеет следующие ограничения:

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

Настройка доступа к учетной записи хранения

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

  1. В портале Azure найдите и откройте ресурс своей учётной записи хранения.

  2. В меню навигации учетной записи хранения в разделе "Безопасность и сеть" выберите "Сеть".

    1. В разделе "Доступ к общедоступной сети" выберите "Включено" из выбранных виртуальных сетей и IP-адресов.

    2. Если вам нужно получить доступ к учетной записи хранения с компьютера, в разделе "Брандмауэр" выберите " Добавить IP-адрес клиента".

    3. В разделе "Исключения" выберите "Разрешить службам Azure" в списке доверенных служб доступ к этой учетной записи хранения.

      Снимок экрана, показывающий портал Azure и панель сети учетной записи BLOB-хранилища с параметрами разрешений.

    4. По завершении выберите Сохранить.

Примечание.

Если при попытке подключиться к учетной записи хранения из рабочего процесса возникает ошибка 403 Запрещено , существует несколько возможных причин. Попробуйте следующее решение, прежде чем переходить к дополнительным действиям. Во-первых, отключите параметр Разрешить службам Azure в списке доверенных служб доступ к этой учетной записи хранения и сохранить изменения. Затем снова активируйте параметр и сохраните изменения еще раз.

Создание назначения роли для приложения логики

Затем включите поддержку управляемого удостоверения в ресурсе приложения логики.

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

  1. Откройте ресурс приложения логики на портале Azure.

  2. В меню навигации ресурса приложения логики в разделе Настройки выберите Идентификация.

  3. На панели «Назначенные системой» задайте для параметра «Состояние» значение «Вкл.», если он еще не включен, затем выберите «Сохранить» и подтвердите изменения. В разделе Разрешения выберите Назначения ролей Azure.

    Снимок экрана, показывающий портал Azure и меню ресурсов логического приложения с панелью настроек

  4. В области Назначения ролей Azure выберите Добавить назначение ролей.

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

  5. На панели "Добавление назначений ролей" настройте новое назначение роли со следующими значениями:

    Свойство значение Описание
    Область применения < область ресурсов> Набор ресурсов, к которому вы хотите применить назначение роли. В этом примере выберите хранилище.
    Подписка < Подписка Azure> Подписка Azure для вашей учетной записи хранения данных.
    Ресурс < имя учетной записи хранилища> Имя учетной записи хранения, к которой требуется получить доступ из рабочего процесса приложения логики.
    Роль < Назначаемая роль> Роль, необходимая в вашем сценарии для того, чтобы ваш рабочий процесс мог работать с ресурсом. В этом примере требуется участник данных BLOB-объектов хранилища, позволяющий читать, записывать и удалять доступ к контейнерам BLOB-объектов и дате. Для получения сведений о разрешениях переместите указатель мыши на значок сведений рядом с ролью в раскрывающемся меню.

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

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

Включить поддержку управляемого удостоверения для приложения логики

Затем выполните следующие действия.

  1. Если у вас пустой рабочий процесс, добавьте триггер соединителя Хранилище BLOB-объектов Azure. В противном случае добавьте действие соединителя Хранилища BLOB-объектов Azure. Убедитесь, что вы создаете новое подключение для триггера или действия, а не используете существующее соединение.

  2. Убедитесь, что тип проверки подлинности настроен на использование управляемой идентификации.

  3. После настройки триггера или действия можно сохранить рабочий процесс и проверить триггер или действие.

Устранение неполадок с доступом к учетным записям хранения

  • Ошибка. Этот запрос не авторизован для выполнения этой операции.

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

    {
       "status": 403,
       "message": "This request is not authorized to perform this operation.\\r\\nclientRequestId: a3da2269-7120-44b4-9fe5-ede7a9b0fbb8",
       "error": {
          "message": "This request is not authorized to perform this operation."
       },
       "source": "azureblob-ase.azconn-ase.p.azurewebsites.net"
    }
    

Ошибки Application Insights

  • Ошибки 404 и 409 :

    Если в рабочем процессе Standard используется встроенное действие Azure Blob, которое добавляет BLOB-объект в контейнер хранилища, в Application Insights для запросов, завершившихся сбоем, могут отображаться ошибки 404 и 409. Эти ошибки ожидаемы, так как коннектор проверяет, существует ли BLOB-файл, перед добавлением BLOB-объекта. Ошибки приводят к тому, что файл не существует. Несмотря на эти ошибки, встроенное действие успешно добавляет BLOB-объект.