Подключение к Хранилище BLOB-объектов Azure из рабочих процессов в Azure Logic Apps
Область применения: Azure Logic Apps (Потребление + Стандартный)
В этом руководстве показано, как получить доступ к учетной записи Хранилище BLOB-объектов Azure и контейнеру из рабочего процесса в Azure Logic Apps с помощью соединителя Хранилище BLOB-объектов Azure. Этот соединитель предоставляет триггеры и действия, которые рабочий процесс может использовать для операций BLOB-объектов. Затем можно создать автоматизированные рабочие процессы, которые выполняются при активации событий в контейнере хранилища или в других системах, а также выполнять действия для работы с данными в контейнере хранилища. Например, вы можете получить доступ к файлам, хранящимся в качестве BLOB-объектов в учетной записи хранения Azure, и управлять ими.
Вы можете подключиться к Хранилище BLOB-объектов Azure из рабочего процесса в типах ресурсов приложения логики (потребления) и приложения логики (стандартный). Соединитель можно использовать с рабочими процессами приложения логики в мультитенантных Azure Logic Apps и azure Logic Apps с одним клиентом. С помощью приложения логики (стандартный) можно использовать встроенные операции соединителя BLOB-объектов Azure или Хранилище BLOB-объектов Azure управляемые операции соединителя.
Технический справочник по соединителю
Соединитель Хранилище BLOB-объектов Azure имеет разные версии, основанные на типе приложения логики и среде узла.
Приложение логики | Среда | Версия соединителя |
---|---|---|
Потребление | Мультитенантные Azure Logic Apps | Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общая среда выполнения>". Дополнительные сведения см. в следующей документации: - справочник по управляемому соединителю Хранилище BLOB-объектов Azure - Управляемые соединители в Azure Logic Apps |
Стандартные | Azure Logic Apps с одним клиентом и Среда службы приложений версии 3 (только планы Windows) | Управляемый соединитель (размещенный в Azure), который отображается в коллекции соединителей в разделе "Общая среда выполнения>" и встроенный соединитель, основанный на поставщике услуг, и отображается в коллекции соединителей в разделе "Среда выполнения>в приложении". Встроенная версия отличается следующим образом: — Встроенная версия подключается непосредственно к учетной записи служба хранилища Azure, требующей только строка подключения. — Встроенная версия может напрямую получить доступ к виртуальным сетям Azure. Дополнительные сведения см. в следующей документации: - справочник по управляемому соединителю Хранилище BLOB-объектов Azure - Справочник по встроенному соединителю BLOB-объектов Azure - Встроенные соединители в Azure Logic Apps |
Ограничения
Хранилище BLOB-объектов Azure действия управляемого соединителя могут считывать или записывать файлы размером 50 МБ или меньше. Для обработки файлов размером более 50 МБ (но не более 1024 МБ) действия Хранилища BLOB-объектов Azure поддерживают фрагментацию сообщений. Действие хранилища BLOB-объектов с именем Get BLOB-содержимое неявно использует фрагментирование.
Хотя управляемые и встроенные триггеры Хранилище BLOB-объектов Azure не поддерживают фрагментирование, встроенные триггеры могут обрабатывать файлы размером 50 МБ или более. Однако при запросе содержимого файла управляемого триггера триггер выбирает только файлы размером 50 МБ или меньше. Чтобы получить файлы размером более 50 МБ, следуйте приведенному ниже шаблону:
Используйте триггер БОЛЬШОго двоичного объекта, который возвращает свойства файла, например при добавлении или изменении большого двоичного объекта (только свойств).
Следуйте триггеру с помощью действия управляемого соединителя Хранилище BLOB-объектов Azure с именем Get BLOB-объекта, которое считывает полный файл и неявно использует фрагментирование.
ограничения триггеров Хранилище BLOB-объектов Azure
- Триггер управляемого соединителя ограничен 30 000 большими двоичными объектами в виртуальной папке опроса.
- Встроенный триггер соединителя ограничен 10 000 большими двоичными объектами во всем контейнере опроса.
Если ограничение превышено, новый большой двоичный объект может не активировать рабочий процесс, поэтому триггер пропускается.
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас еще нет подписки Azure, зарегистрируйтесь для получения бесплатной учетной записи Azure.
Рабочий процесс приложения логики, из которого требуется получить доступ к учетной записи служба хранилища Azure. Чтобы запустить рабочий процесс с триггером BLOB-объектов Azure, вам потребуется пустой рабочий процесс. Чтобы использовать действие BLOB-объектов Azure, запустите рабочий процесс с любым триггером.
Добавление триггера BLOB-объекта
Рабочий процесс приложения логики потребления может использовать только управляемый соединитель Хранилище BLOB-объектов Azure. Однако рабочий процесс приложения логики уровня "Стандартный" может использовать управляемый соединитель Хранилище BLOB-объектов Azure и встроенный соединитель BLOB-объектов Azure. Хотя обе версии соединителя предоставляют только один триггер БОЛЬШОго двоичного объекта, имя триггера отличается следующим образом, в зависимости от того, работаете ли вы с рабочим процессом "Потребление" или "Стандартный":
Приложение логики | Версия соединителя | Имя триггера | Description |
---|---|---|---|
Потребление | Только управляемый соединитель | При добавлении или изменении большого двоичного объекта (только свойств) | Триггер запускается при добавлении или обновлении свойств большого двоичного объекта в корневой папке контейнера хранилища. При настройке управляемого триггера управляемая версия игнорирует существующие большие двоичные объекты в контейнере хранилища. |
Стандартные | — встроенный соединитель — Управляемый соединитель |
— Встроенная : при добавлении или обновлении большого двоичного объекта — Управляемое: при добавлении или изменении большого двоичного объекта (только свойств) |
— Встроенный: триггер запускается при добавлении или обновлении большого двоичного объекта в контейнере хранилища и запускается для всех вложенных папок в контейнере хранилища, а не только корневой папки. При настройке встроенного триггера встроенная версия обрабатывает все существующие большие двоичные объекты в контейнере хранилища. — Управляемый: триггер запускается при добавлении или обновлении свойств большого двоичного объекта в корневой папке контейнера хранилища. При настройке управляемого триггера управляемая версия игнорирует существующие большие двоичные объекты в контейнере хранилища. |
Следующие шаги используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания рабочих процессов приложения логики:
Рабочие процессы приложения логики потребления: Visual Studio или Visual Studio Code
Стандартные рабочие процессы приложения логики: Visual Studio Code
В портал Azure откройте приложение логики потребления и пустой рабочий процесс в конструкторе.
В конструкторе в поле поиска выберите "Стандартный" и выполните следующие общие действия, чтобы добавить нужный триггер Хранилище BLOB-объектов Azure.
Этот пример продолжается с триггером с именем "При добавлении или изменении большого двоичного объекта" (только свойств).
При появлении запроса укажите следующие сведения о подключении к учетной записи хранения. По завершении нажмите Создать.
Свойство Обязательное поле Описание Имя подключения Да Имя подключения Тип проверки подлинности Да Тип проверки подлинности для учетной записи хранения. Дополнительные сведения см. в разделе "Типы проверки подлинности" для триггеров и действий, поддерживающих проверку подлинности — безопасный доступ и данные. Например, это подключение использует проверку подлинности ключа доступа и предоставляет значение ключа доступа для учетной записи хранения вместе со следующими значениями свойств:
Свойство Обязательное поле значение Описание имя учетной записи служба хранилища Azure Да, но только для проверки подлинности ключа доступа <storage-account-name> Имя учетной записи хранения Azure, в которой существует контейнер BLOB-объектов.
Примечание. Чтобы найти имя учетной записи хранения, откройте ресурс учетной записи хранения в портал Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите ключи доступа. В разделе имя учетной записи хранения скопируйте и сохраните имя.ключ доступа к учетной записи служба хранилища Azure Да
но только для проверки подлинности ключа доступа<ключ доступа к учетной записи хранения> Ключ доступа для учетной записи хранения Azure.
Примечание. Чтобы найти ключ доступа, откройте ресурс учетной записи хранения в портал Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите "Ключи доступа", "Показать ключи>доступа".> Скопируйте и сохраните значение первичного ключа.После появления поля сведений о триггере укажите необходимые сведения.
Для значения свойства контейнера выберите значок папки, чтобы найти контейнер BLOB-объектов. Или введите путь вручную с помощью синтаксиса /<container-name>, например:
Чтобы добавить другие свойства, доступные для этого триггера, откройте список новых параметров и выберите нужные свойства.
Дополнительные сведения см. в Хранилище BLOB-объектов Azure свойства триггера управляемого соединителя.
Добавьте любые другие действия, необходимые рабочему процессу.
Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.
Добавление действия BLOB-объекта
Рабочий процесс приложения логики потребления может использовать только управляемый соединитель Хранилище BLOB-объектов Azure. Однако рабочий процесс приложения логики уровня "Стандартный" может использовать управляемый соединитель Хранилище BLOB-объектов Azure и встроенный соединитель BLOB-объектов Azure. Каждая версия имеет несколько, но по-разному именованные действия. Например, у управляемых и встроенных версий соединителей есть собственные действия для получения метаданных файла и получения содержимого файла.
Действия управляемого соединителя: эти действия выполняются в рабочем процессе "Потребление" или "Стандартный".
Встроенные действия соединителя: эти действия выполняются только в стандартном рабочем процессе.
Следующие действия используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания и редактирования рабочих процессов приложения логики:
Рабочие процессы приложения логики потребления: Visual Studio или Visual Studio Code
Стандартные рабочие процессы приложения логики: Visual Studio Code
В портал Azure откройте приложение логики потребления и рабочий процесс в конструкторе.
Если рабочий процесс пуст, добавьте триггер, который требуется вашему сценарию.
В этом примере используется триггер повторения.
В конструкторе выполните следующие общие действия, чтобы найти и добавить нужное Хранилище BLOB-объектов Azure управляемое действие.
В этом примере продолжается действие с именем Get BLOB-объектов.
При появлении запроса укажите следующие сведения для подключения. По завершении нажмите Создать.
Свойство Обязательное поле Описание Имя подключения Да Имя подключения Тип проверки подлинности Да Тип проверки подлинности для учетной записи хранения. Дополнительные сведения см. в разделе "Типы проверки подлинности" для триггеров и действий, поддерживающих проверку подлинности — безопасный доступ и данные. Например, это подключение использует проверку подлинности ключа доступа и предоставляет значение ключа доступа для учетной записи хранения вместе со следующими значениями свойств:
Свойство Обязательное поле значение Описание имя учетной записи служба хранилища Azure Да
но только для проверки подлинности ключа доступа<storage-account-name> Имя учетной записи хранения Azure, в которой существует контейнер BLOB-объектов.
Примечание. Чтобы найти имя учетной записи хранения, откройте ресурс учетной записи хранения в портал Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите ключи доступа. В разделе имя учетной записи хранения скопируйте и сохраните имя.ключ доступа к учетной записи служба хранилища Azure Да
но только для проверки подлинности ключа доступа<ключ доступа к учетной записи хранения> Ключ доступа для учетной записи хранения Azure.
Примечание. Чтобы найти ключ доступа, откройте ресурс учетной записи хранения в портал Azure. В меню ресурсов в разделе "Безопасность и сеть" выберите "Ключи доступа", "Показать ключи>доступа".> Скопируйте и сохраните значение первичного ключа.В поле сведений о действии укажите необходимые сведения.
Например, в действии "Получить содержимое BLOB-объектов" укажите имя учетной записи хранения. Для значения свойства BLOB-объекта щелкните значок папки, чтобы найти контейнер хранилища или папку. Путь также можно ввести вручную.
Задача Синтаксис пути большого двоичного объекта Получите содержимое из определенного большого двоичного объекта в корневой папке. /<container-name>/<blob-name> Получите содержимое из определенного большого двоичного объекта в вложенной папке. /<container-name>/subfolder>/<<blob-name> В следующем примере показана настройка действия, которая получает содержимое из большого двоичного объекта в корневой папке:
В следующем примере показана настройка действия, которая получает содержимое из большого двоичного объекта в подпапке:
Добавьте любые другие действия, необходимые рабочему процессу.
Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.
Доступ к учетным записям хранения, защищенным брандмауэром
Вы можете добавить сетевую безопасность в учетную запись хранения Azure, запретив доступ с помощью брандмауэра и правил брандмауэра. Однако такая настройка создает сложности для Azure и других служб Майкрософт, которым требуется доступ к учетной записи хранения. Локальная связь в центре обработки данных абстрагирует внутренние IP-адреса, поэтому только разрешение трафика через IP-адреса может быть недостаточно, чтобы разрешить обмен данными через брандмауэр. На основе используемого соединителя Хранилище BLOB-объектов Azure доступны следующие параметры:
Сведения о доступе к учетным записям хранения за брандмауэрами с помощью управляемого соединителя Хранилище BLOB-объектов Azure в приложениях логики потребления см. в следующей документации:
Чтобы получить доступ к учетным записям хранения за брандмауэрами в стандартных приложениях логики, ознакомьтесь со следующей документацией:
Хранилище BLOB-объектов Azure встроенный соединитель: доступ к учетным записям хранения через интеграцию виртуальной сети
Хранилище BLOB-объектов Azure управляемый соединитель: доступ к учетным записям хранения в других регионах
Доступ к учетным записям хранения в других регионах
Если вы не используете проверку подлинности управляемого удостоверения, рабочие процессы приложения логики не могут напрямую обращаться к учетным записям хранения за брандмауэрами, если ресурс приложения логики и учетная запись хранения существуют в одном регионе. В качестве обходного решения поместите ресурс приложения логики в другой регион, отличный от учетной записи хранения. Затем предоставьте доступ к исходящим IP-адресам для управляемых соединителей в вашем регионе.
Примечание.
Это решение не относится к соединителю Хранилища таблиц Azure и соединителю Хранилища очередей Azure. Вместо этого для доступа к хранилищу таблиц или хранилищу очередей используйте встроенный триггер HTTP и действие.
Чтобы добавить исходящие IP-адреса в брандмауэр учетной записи хранения, выполните следующие действия.
Обратите внимание на исходящие IP-адреса управляемого соединителя для региона ресурса приложения логики.
В портал Azure найдите и откройте ресурс учетной записи хранения.
В меню навигации учетной записи хранения в разделе "Безопасность и сеть" выберите "Сеть".
В разделе "Разрешить доступ" выберите выбранные сети, в которых показаны соответствующие параметры.
В разделе Брандмауэр добавьте IP-адреса или диапазоны, которым требуется доступ. Если вам нужно получить доступ к учетной записи хранения с компьютера, выберите " Добавить IP-адрес клиента".
По завершении выберите Сохранить.
Доступ к учетным записям хранения через доверенную виртуальную сеть
Приложение логики и учетная запись хранения существуют в одном регионе.
Вы можете поместить учетную запись хранения в виртуальную сеть Azure, создав частную конечную точку, а затем добавьте эту виртуальную сеть в список доверенных виртуальных сетей. Чтобы предоставить приложению логики доступ к учетной записи хранения через надежную виртуальную сеть, необходимо создать стандартное приложение логики, которое может подключаться к ресурсам в виртуальной сети.
Приложение логики и учетная запись хранения существуют в разных регионах.
Создайте частную конечную точку в учетной записи хранения для доступа.
Доступ к учетным записям хранения через интеграцию виртуальной сети
Приложение логики и учетная запись хранения существуют в одном регионе.
Вы можете поместить учетную запись хранения в виртуальную сеть Azure, создав частную конечную точку, а затем добавьте эту виртуальную сеть в список доверенных виртуальных сетей. Чтобы предоставить приложению логики доступ к учетной записи хранения, необходимо настроить исходящий трафик с помощью интеграции виртуальной сети, чтобы включить подключение к ресурсам в виртуальной сети. Затем можно добавить виртуальную сеть в список доверенных виртуальных сетей учетной записи хранения.
Приложение логики и учетная запись хранения существуют в разных регионах.
Создайте частную конечную точку в учетной записи хранения для доступа.
Доступ к хранилищу BLOB-объектов в одном регионе с удостоверениями, управляемыми системой
Чтобы подключиться к Хранилище BLOB-объектов Azure в любом регионе, можно использовать управляемые удостоверения для проверки подлинности. Вы можете создать исключение, разрешающее доверенным службам Майкрософт, таким как управляемые удостоверения, доступ к учетной записи хранения через брандмауэр.
Примечание.
Это решение не относится к приложениям логики уровня "Стандартный". Даже если вы используете управляемое удостоверение, назначаемое системой, с приложением логики "Стандартный", Хранилище BLOB-объектов Azure управляемый соединитель не может подключиться к учетной записи хранения в том же регионе.
Чтобы использовать управляемые удостоверения в приложении логики для доступа к хранилищу BLOB-объектов, выполните следующие действия.
Настройте доступ к учетной записи хранения.
Включите поддержку управляемого удостоверения в приложении логики.
Примечание.
Это решение имеет следующие ограничения:
Для проверки подлинности подключения учетной записи хранения необходимо настроить управляемое удостоверение, назначаемое системой. Управляемое удостоверение, назначаемое пользователем, не будет работать.
Настройка доступа к учетной записи хранения
Чтобы настроить поддержку исключений и управляемых удостоверений, сначала настройте соответствующий доступ к учетной записи хранения.
В портал Azure найдите и откройте ресурс учетной записи хранения.
В меню навигации учетной записи хранения в разделе "Безопасность и сеть" выберите "Сеть".
В разделе "Разрешить доступ" выберите выбранные сети, в которых показаны соответствующие параметры.
Если вам нужно получить доступ к учетной записи хранения с компьютера, в разделе "Брандмауэр" выберите " Добавить IP-адрес клиента".
В разделе "Исключения" выберите "Разрешить доверенным службы Майкрософт для доступа к этой учетной записи хранения".
По завершении выберите Сохранить.
Примечание.
Если при попытке подключиться к учетной записи хранения из рабочего процесса возникает ошибка 403 Запрещено , существует несколько возможных причин. Попробуйте следующее решение, прежде чем переходить к дополнительным действиям. Сначала снимите флажок Разрешите доверенным службам Майкрософт доступ к этой учетной записи хранения и сохраните изменения. Затем снова активируйте параметр и сохраните изменения еще раз.
Создание назначения роли для приложения логики
Затем включите поддержку управляемого удостоверения в ресурсе приложения логики.
Следующие действия одинаковы для приложений логики потребления в мультитенантных средах и стандартных приложениях логики в средах с одним клиентом.
Откройте ресурс приложения логики на портале Azure.
В меню навигации по ресурсам приложения логики в разделе "Параметры" выберите "Удостоверение".
На панели "Назначаемая системой" установите значение "Состояние включено", если оно еще не включено, нажмите кнопку "Сохранить" и подтвердите изменения. В разделе Разрешения выберите Назначения ролей Azure.
В области Назначения ролей Azure выберите Добавить назначение ролей.
На панели "Добавление назначений ролей" настройте новое назначение роли со следующими значениями:
Свойство Значение Описание Область применения <область ресурсов> Набор ресурсов, в котором требуется применить назначение роли. В этом примере выберите хранилище. Подписка <Подписка Azure> Подписка Azure для учетной записи хранения. Ресурс <storage-account-name> Имя учетной записи хранения, к которой требуется получить доступ из рабочего процесса приложения логики. Роль <role-to-assign> Роль, требуемая для работы рабочего процесса с ресурсом. В этом примере требуется участник данных BLOB-объектов хранилища, позволяющий читать, записывать и удалять доступ к контейнерам BLOB-объектов и дате. Для получения сведений о разрешениях переместите указатель мыши на значок сведений рядом с ролью в раскрывающемся меню. По завершении нажмите кнопку "Сохранить ", чтобы завершить создание назначения роли.
Включение поддержки управляемых удостоверений в приложении логики
Затем выполните следующие действия.
Если у вас есть пустой рабочий процесс, добавьте триггер соединителя Хранилище BLOB-объектов Azure. В противном случае добавьте действие соединителя Хранилище BLOB-объектов Azure. Убедитесь, что вы создаете новое подключение для триггера или действия, а не используете существующее соединение.
Убедитесь, что тип проверки подлинности задан для использования управляемого удостоверения.
После настройки триггера или действия можно сохранить рабочий процесс и проверить триггер или действие.
Устранение неполадок с доступом к учетным записям хранения
"Этот запрос не авторизован для выполнения этой операции".
Следующая ошибка — это часто сообщаемая проблема, которая возникает, когда приложение логики и учетная запись хранения существуют в одном регионе. Однако доступны варианты для устранения этого ограничения, как описано в разделе, доступ к учетным записям хранения за брандмауэрами.
{ "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
Если рабочий процесс уровня "Стандартный" использует встроенное действие Большого двоичного объекта Azure, которое добавляет большой двоичный объект в контейнер хранилища, может возникнуть ошибка 404 и 409 в Application Insights для неудачных запросов. Эти ошибки ожидаются, так как соединитель проверяет, существует ли файл большого двоичного объекта перед добавлением большого двоичного объекта. Ошибки приводят к тому, что файл не существует. Несмотря на эти ошибки, встроенное действие успешно добавляет большой двоичный объект.