Создание рабочих процессов приложения логики уровня "Стандартный" для гибридного развертывания в собственной инфраструктуре (предварительная версия)
Область применения: Azure Logic Apps (стандартная версия)
Примечание.
Эта возможность доступна в предварительной версии, взимает плату за использование и распространяется на дополнительные условия использования для предварительных версий Microsoft Azure.
В сценариях, в которых необходимо использовать, управлять и управлять собственной инфраструктурой, можно создавать рабочие процессы приложения логики уровня "Стандартный" с помощью модели гибридного развертывания в Azure Logic Apps. Эта модель предоставляет возможности для создания и размещения решений интеграции для частично подключенных сред, требующих локальной обработки, хранения и сетевого доступа. Инфраструктура может включать локальные системы, частные облака и общедоступные облака. С помощью гибридной модели рабочий процесс приложения логики уровня "Стандартный" зависит от среды выполнения Azure Logic Apps, размещенной в локальной среде в рамках расширения приложений контейнеров Azure.
Обзор архитектуры, показывающий, где размещаются рабочие процессы приложения логики "Стандартный" и запускаются в частично подключенной среде, см. в разделе "Настройка требований к инфраструктуре для гибридного развертывания для приложений логики уровня "Стандартный".
В этом руководстве показано, как создать и развернуть рабочий процесс приложения логики уровня "Стандартный" с помощью гибридной модели развертывания после настройки необходимых локальных ресурсов для размещения приложения.
Ограничения
Гибридное развертывание для приложений логики уровня "Стандартный" доступно и поддерживается только в том же регионе, что и приложения контейнеров Azure в AKS с поддержкой Azure Arc.
Следующие возможности в настоящее время недоступны в этом выпуске предварительной версии:
- Проверка подлинности управляемого удостоверения
- Доступ к SAP через встроенный соединитель SAP
- Пользовательский код C# с платформа .NET Framework и встроенным действием с именем "Вызов локальной функции" в этом приложении логики
- XSLT 1.0 для пользовательского кода
Кластеры Kubernetes с поддержкой Azure Arc в настоящее время не поддерживают проверку подлинности управляемого удостоверения для управляемых подключений API. Вместо этого необходимо создать собственную регистрацию приложения с помощью идентификатора Microsoft Entra. Дополнительные сведения см. далее в этом руководстве.
Для некоторых триггеров на основе функций, таких как BLOB-объект Azure, Cosmos DB и Центры событий, требуется подключение к учетной записи хранения Azure, связанной с приложением логики "Стандартный". Если вы используете какие-либо триггеры на основе функций, в переменных среды приложения логики уровня "Стандартный" в портал Azure или в файле local.settings.json проекта приложения логики в Visual Studio Code добавьте следующий параметр приложения и укажите свою учетную запись хранения строка подключения:
"Values": { "name": "AzureWebJobsStorage", "value": "{storage-account-connection-string}" }
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас нет ее, вы можете зарегистрироваться для получения бесплатной учетной записи Azure.
Следующие локальные ресурсы, которые должны существовать в одной сети для требуемого подключения:
- Кластер Служба Azure Kubernetes, подключенный к Azure Arc
- База данных SQL для локального хранения журнала выполнения рабочих процессов, входных данных и выходных данных для обработки
- Общий файловый ресурс блока сообщений сервера (SMB) для локального хранения артефактов, используемых рабочими процессами
Чтобы удовлетворить эти требования, настройте эти локальные ресурсы для поддержки гибридного развертывания для приложений логики уровня "Стандартный".
Чтобы работать в Visual Studio Code, вам потребуется расширение Azure Logic Apps (standard) для Visual Studio Code с соответствующими предварительными условиями.
Совет
Если у вас есть новая установка Visual Studio Code, убедитесь, что вы можете локально запустить базовый рабочий процесс уровня "Стандартный" перед развертыванием в собственной инфраструктуре. Этот тестовый запуск помогает изолировать любые ошибки, которые могут существовать в проекте рабочего процесса "Стандартный".
Создание приложения логики "Стандартный"
После выполнения предварительных требований создайте приложение логики уровня "Стандартный" для гибридного развертывания, выполнив следующие действия.
В поле поиска портал Azure введите приложения логики и выберите приложения логики.
На панели инструментов страницы "Приложения логики" нажмите кнопку "Добавить".
На странице "Создание приложения логики" в разделе "Стандартный" выберите "Гибридный".
На странице создания приложения логики (гибридного) укажите следующие сведения:
Свойство Обязательное поле значение Описание Подписка Да <имя-подписки-Azure> Имя подписки Azure.
В этом примере используется оплата по мере использования.Группа ресурсов Да <имя-группы-ресурсов-Azure> Группа ресурсов Azure, в которой создается гибридное приложение и связанные ресурсы. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).
В этом примере создается группа ресурсов с именем Hybrid-RG.Имя приложения логики Да <logic-app-name> Имя приложения логики, которое должно быть уникальным в разных регионах и может содержать только строчные буквы, цифры или дефисы (-).
В этом примере используется my-logic-app-hybrid.Регион Да <Azure-region> Регион Azure, поддерживаемый для приложений контейнеров Azure в AKS с поддержкой Azure Arc.
В этом примере используется Восточная часть США.Подключенная среда приложения-контейнера Да <имя подключенной среды> Кластер Kubernetes с поддержкой Arc, созданный в качестве среды развертывания для приложения логики. Дополнительные сведения см. в руководстве . Включение приложений контейнеров Azure в Kubernetes с поддержкой Azure Arc. Настройка параметров хранилища Да Включен или отключен Перейдите на вкладку "Хранилище" на странице "Создание приложения логики (гибридной среды"). В следующем примере показана страница создания приложения логики в портал Azure с примерами значений:
На странице хранилища укажите следующие сведения о поставщике хранилища и общей папке SMB, настроенной ранее:
Свойство Обязательное поле значение Описание Строка подключения SQL Да <sql-server-connection-string> Строка подключения SQL Server, сохраненные ранее. Дополнительные сведения см. в разделе "Создание поставщика хранилища SQL Server". Имя узла Да <file-share-host-name> Имя узла для общей папки SMB. Путь к общей папке Да <Путь к общей папке> Путь к общей папке SMB. Имя пользователя Да <имя пользователя file-share> Имя пользователя для общей папки SMB. Пароль Да <Пароль для общего доступа к файлу> Пароль для общей папки SMB. По завершении нажмите кнопку "Просмотр и создание". Подтвердите предоставленные сведения и нажмите кнопку "Создать".
После завершения развертывания Azure выберите "Перейти к ресурсу".
Примечание.
Некоторые известные проблемы существуют на портале вокруг стандартных приложений логики, использующих вариант гибридного размещения. Эти приложения логики отображаются с меткой приложения-контейнера, которая отличается от стандартных приложений логики, использующих план службы рабочих процессов или Среда службы приложений вариант размещения версии 3. Дополнительные сведения см. в разделе "Известные проблемы и устранение неполадок" портал Azure.
В портал Azure в меню ресурсов в разделе "Рабочие процессы" выберите "Рабочие процессы".
На панели инструментов страницы "Рабочие процессы" выберите "Добавить", чтобы добавить пустой рабочий процесс без отслеживания состояния или без отслеживания состояния.
После открытия конструктора создайте рабочий процесс, добавив триггер и действия.
Дополнительные сведения см. в разделе "Создание рабочего процесса с помощью триггера и действий".
Примечание.
Приложение логики уровня "Стандартный" с параметром гибридного размещения автоматически создает новую редакцию, которая представляет собой концепцию управления версиями из приложений контейнеров Azure при сохранении изменений в дочернем рабочем процессе. Эта редакция может занять некоторое время для активации, что означает, что после сохранения изменений может потребоваться подождать несколько минут, прежде чем протестировать рабочий процесс.
Если изменения еще не появились в рабочем процессе, можно проверить, существует ли редакция:
В меню ресурсов в разделе "Редакции" выберите "Редакции" и "Редакции" и " реплики".
На странице "Редакции и реплики" на вкладке "Активные редакции" проверьте, отображается ли новая редакция в списке.
Дополнительные сведения см. на следующих ресурсах:
Изменение выделения ЦП и памяти в портал Azure
Чтобы изменить параметры ЦП и памяти для ресурса приложения логики уровня "Стандартный", выполните следующие действия.
На портале Azure откройте свой ресурс приложения логики категории "Стандартный".
В меню ресурсов в разделе "Параметры" выберите "Контейнеры".
На панели инструментов "Контейнеры" выберите "Изменить и развернуть", чтобы открыть панель "Изменить контейнер".
На вкладке "Свойства" в разделе "Выделение ресурсов контейнера" измените следующие значения, чтобы соответствовать вашему сценарию:
Свойство Значение Описание Ядра ЦП — значение по умолчанию: 1
- Минимум: 0,25
- Максимум: 2Определяет ядра ЦП для назначения экземпляру контейнера. Это значение можно увеличить на 0,25 ядра до максимального значения. Общее число всех экземпляров контейнеров для этого приложения логики ограничено 2 ядрами. Память — значение по умолчанию: 2
— минимум: 0,1
- Максимум: 4Определяет емкость памяти в гибибайтах (Ги), чтобы назначить экземпляру контейнера. Это значение можно увеличить на 0,1 Ги до максимального значения. Общая емкость для всех экземпляров контейнеров для этого приложения логики ограничена 4 Ги. По завершении нажмите кнопку Сохранить.
Изменение масштабирования реплики в портал Azure
Вы можете управлять автоматическим масштабированием для диапазона реплик, развертываемых в ответ на событие триггера. Реплика — это новый экземпляр редакции или версии ресурса приложения логики. Чтобы изменить минимальные и максимальные значения этого диапазона, можно изменить правила масштабирования, чтобы определить типы событий, которые активируют масштабирование. Дополнительные сведения см. в статье Установка правил масштабирования в Контейнерах приложений Azure.
На портале Azure откройте свой ресурс приложения логики категории "Стандартный".
В меню ресурсов в разделе "Параметры" выберите "Масштаб".
На странице "Масштабирование" в разделе "Параметр правила масштабирования" измените следующие значения, чтобы соответствовать вашему сценарию:
Свойство Значение Описание Минимальные реплики — значение по умолчанию: 1
— минимум: 0
— максимум: 1000Определяет минимальное количество реплик, разрешенных для редакции в любое время. Это значение переопределяет правила масштабирования и должно быть меньше максимального количества реплик. Максимальное число реплик — значение по умолчанию: 30
— минимум: 0
— максимум: 1000Определяет максимальное количество реплик, разрешенных для редакции в любое время. Это значение переопределяет правила масштабирования. По завершении нажмите кнопку Сохранить.
Управление входящим трафиком в приложение логики в портал Azure
Вы можете предоставить приложение логики общедоступному интернету, виртуальной сети и другим приложениям логики в вашей среде, включив входящий трафик. Azure применяет параметры входящего трафика с помощью набора правил, которые управляют маршрутизацией внешнего и внутреннего трафика в приложение логики. При включении входящего трафика вам не нужно создавать Azure Load Balancer, общедоступный IP-адрес или другие ресурсы Azure, чтобы включить входящие HTTP-запросы или TCP-трафик. Дополнительные сведения см. в разделе "Входящий трафик" в приложениях контейнеров.
Примечание.
При включении входящего трафика весь трафик будет направлен на последнюю версию по умолчанию. Перейдите на страницу управления редакцией, чтобы изменить параметры трафика.
В меню ресурсов в разделе "Параметры" выберите "Входящий трафик".
На странице входящего трафика рядом с входящего трафика выберите поле "Включено".
На основе вашего сценария настройте остальные параметры.
Дополнительные сведения см. в следующей документации:
Настройка проверки подлинности для управляемых подключений API
Чтобы проверить подлинность управляемых подключений API в рабочих процессах приложения логики уровня "Стандартный", размещенных в кластерах Kubernetes с поддержкой Azure Arc, необходимо создать собственную регистрацию приложения с помощью идентификатора Microsoft Entra. Затем можно добавить значения регистрации этого приложения в качестве переменных среды в ресурс приложения логики "Стандартный", чтобы проверить подлинность подключений API.
Создание регистрации приложения с помощью идентификатора Microsoft Entra
Портал Azure
В портал Azure выполните краткое руководство. Регистрация приложения с помощью платформа удостоверений Майкрософт для создания регистрации приложения.
После завершения создания на портале найдите новую регистрацию приложения.
В меню ресурсов выберите "Обзор" и сохраните следующие значения, которые потребуется позже для проверки подлинности подключения:
- Client ID
- Идентификатор клиента
- Секрет клиента
Для идентификатора объекта выполните следующие действия.
На странице обзора выберите управляемое приложение в ссылке локального каталога для регистрации приложения, как показано ниже.
На открывающейся странице скопируйте и сохраните значение идентификатора объекта:
Теперь добавьте сохраненные значения в качестве переменных среды в ресурс приложения логики "Стандартный".
Azure CLI
Чтобы создать регистрацию приложения, используйте команду az ad sp create.
Чтобы просмотреть все свойства, используйте команду az ad sp show.
В выходных данных обеих команд найдите и сохраните следующие значения, которые потребуется позже для проверки подлинности подключения:
- Client ID
- Код объекта
- Идентификатор клиента
- Секрет клиента
Теперь добавьте сохраненные значения в качестве переменных среды в ресурс приложения логики "Стандартный".
Добавление значений регистрации приложений в приложение логики "Стандартный"
В портал Azure перейдите к ресурсу приложения логики "Стандартный".
В меню ресурсов в разделе "Параметры" выберите "Контейнеры" и перейдите на вкладку "Переменные среды".
Дополнительные сведения о параметрах приложения и параметрах узла см. в разделе "Изменение параметров приложения" и параметров узла.
На панели инструментов выберите "Изменить" и "Развернуть".
На панели "Изменить контейнер" выберите переменные среды и нажмите кнопку "Добавить".
В следующей таблице добавьте каждую переменную среды с указанным значением:
Переменная среды Значение WORKFLOWAPP_AAD_CLIENTID <my-client-ID> WORKFLOWAPP_AAD_OBJECTID <my-object-ID> WORKFLOWAPP_AAD_TENANTID <my-tenant-ID> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret> По завершении нажмите кнопку Сохранить.
Хранение и ссылка на идентификатор клиента и секрет клиента
Вы можете хранить идентификатор клиента и значения секретов клиента в ресурсе приложения логики в качестве секретов, а затем ссылаться на эти значения на вкладке переменных среды.
На портале Azure перейдите к своему ресурсу приложения логики.
В меню ресурсов в разделе "Параметры" выберите "Секреты".
На панели инструментов выберите Добавить.
На панели "Добавить секрет" укажите следующие сведения для каждого секрета и нажмите кнопку "Добавить".
Ключ Значение WORKFLOWAPP_AAD_CLIENTID <my-client-ID> WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
Известные проблемы и устранение неполадок
Портал Azure
Приложение логики уровня "Стандартный" развертывается и отображается как ресурс azure Container Apps, но тип отображается как приложение логики (гибридное приложение).
Azure включает ваше приложение логики уровня "Стандартный" в список ресурсов "Приложения контейнеров" , а не в списке ресурсов приложений логики.
Подключенная среда для приложений контейнеров Azure выводит приложение логики уровня "Стандартный" как тип приложения гибридной логики.
Чтобы отразить изменения в конструкторе после сохранения рабочего процесса, может потребоваться периодически обновлять конструктор.
Кластеры Kubernetes с поддержкой Arc
В редких сценариях в кластере может возникнуть высокий объем памяти. Чтобы предотвратить эту проблему, выполните горизонтальное масштабирование или добавьте автомасштабирование для пулов узлов.
Узел функций не запущен
После развертывания приложения логики уровня "Стандартный" убедитесь, что приложение работает правильно.
В портал Azure перейдите к ресурсу приложения-контейнера для приложения логики.
В меню ресурсов выберите Обзор.
На странице "Обзор" рядом с полем "URL-адрес приложения" выберите URL-адрес ресурса.
Если приложение работает правильно, откроется окно браузера и отображается следующее сообщение:
В противном случае, если приложение имеет какие-либо сбои, убедитесь, что модули pod AKS работают правильно. В Windows PowerShell выполните следующие команды:
az aks get-credentials {resource-group-name} --name {aks-cluster-name} --admin kubectl get ns kubectl get pods -n logicapps-aca-ns kubectl describe pod {logic-app-pod-name} -n logicapps-aca-ns
Дополнительные сведения см. в следующей документации:
Кластер не имеет достаточно узлов
Если вы выполнили предыдущую команду и получите предупреждение, аналогичное следующему примеру, кластер не имеет достаточно узлов для обработки:
Warning: FailedScheduling 4m52s (x29 over 46m) default-scheduler 0/2 nodes are available: 2 Too many pods. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod.
Чтобы увеличить количество узлов и настроить автомасштабирование, выполните следующие действия.
В портал Azure перейдите к экземпляру службы Kubernetes.
В меню экземпляра в разделе "Параметры" выберите пулы узлов.
На панели инструментов инструментов узла нажмите кнопку +Добавить пул узлов.
Дополнительные сведения см. в следующей документации:
- Создание пулов узлов для кластера в Служба Azure Kubernetes (AKS)
- Управление пулами узлов для кластера в Служба Azure Kubernetes (AKS)
- Обзор автомасштабирования кластера в Служба Azure Kubernetes (AKS)
- Использование автомасштабирования кластера в Служба Azure Kubernetes (AKS)
Драйвер SMB Container Storage Interface (CSI) не установлен
После выполнения предыдущей kubectl describe pod
команды, если появится следующее предупреждение, убедитесь, установлен ли драйвер CSI для общей папки SMB правильно:
Warning FailedScheduling 5m16s (x2 over 5m27s) default-scheduler 0/14 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/14 nodes are available: 14 Preemption is not helpful for scheduling.
Normal NotTriggerScaleUp 9m49s (x31 over 14m) cluster-autoscaler pod didn't trigger scale-up: 3 pod has unbound immediate PersistentVolumeClaims
Чтобы подтвердить, выполните следующие команды из Windows PowerShell:
kubectl get csidrivers
Если список результатов, который отображается, не включает smb.csi.k8s.io, из командной строки Windows и выполните следующую команду:
helm repo add csi-driver-smb
helm repo update
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0
Чтобы проверить состояние pod драйвера SMB CSI, в командной строке Windows выполните следующую команду:
kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch
Дополнительные сведения см. в статьях о драйверах интерфейса хранилища контейнеров (CSI) в Служба Azure Kubernetes (AKS).