Создание и развертывание рабочих процессов приложений логики на основе одного арендатора с помощью Logic Apps с поддержкой Azure Arc (предварительная версия)
Примечание.
Эта возможность входит в предварительную версию, и на нее распространяются Дополнительные условия использования предварительных версий Microsoft Azure.
С поддержкой Azure Arc Logic Apps вы можете создавать и развертывать рабочие процессы приложения логики на основе одного клиента в инфраструктуре Kubernetes, которой вы управляете и управляете. Приложения логики выполняются в пользовательском расположении, сопоставленном с кластером Kubernetes с поддержкой Azure Arc, где установлен и включен пакет расширений платформы служб приложение Azure.
Например, этот кластер может быть Службой Azure Kubernetes, Kubernetes без операционной системы или другой службой. Пакет расширений позволяет запускать службы платформы, такие как Azure Logic Apps, Служба приложений Azure и Функции Azure, в кластере Kubernetes.
Дополнительные сведения см. в следующей документации:
- Что собой представляет Logic Apps с поддержкой Azure Arc?
- Один клиент и мультитенант в Azure Logic Apps
- Обзор Azure Arc
- Обзор Службы Azure Kubernetes
- Что представляет собой Kubernetes с поддержкой Azure Arc?
- Пользовательские расположения в Kubernetes с поддержкой Azure Arc
- Служба приложений, Функции и Logic Apps в Azure Arc (предварительная версия)
- Настройка кластера Kubernetes с поддержкой Azure Arc для запуска Службы приложений, Функций и Logic Apps (предварительная версия)
Необходимые компоненты
В этом разделе описаны общие предварительные требования для всех подходов и средств, которые можно использовать для создания и развертывания рабочих процессов приложений логики. Предварительные требования для конкретного инструмента описаны вместе с соответствующими шагами.
Учетная запись Azure с активной подпиской. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
Среда Kubernetes с кластером Kubernetes с поддержкой Azure Arc и пользовательским расположением, где можно размещать и запускать Azure Logic Apps, Службу приложений Azure и Функции Azure.
Внимание
Используйте одно и то же расположение ресурсов для среды Kubernetes, пользовательского расположения и приложения логики.
При создании расширения набора Службы приложений в кластере Kubernetes можно изменить поведение масштабирования по умолчанию для запуска рабочих процессов приложений логики. При создании расширения с помощью команды Azure CLI,
az k8s-extension create
, обязательно включите параметр конфигурацииkeda.enabled=true
:az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
Дополнительные сведения см. в следующей документации:
- Служба приложений, Функции и Logic Apps в Azure Arc (предварительная версия)
- Расширения кластера в Kubernetes с поддержкой Azure Arc
- Настройка кластера Kubernetes с поддержкой Azure Arc для запуска Службы приложений, Функций и Logic Apps (предварительная версия)
- Изменение поведения масштабирования по умолчанию
Собственное удостоверение Microsoft Entra
Если рабочие процессы должны использовать любые подключения, размещенные в Azure, например Office 365 Outlook или служба хранилища Azure, приложение логики должно использовать удостоверение Microsoft Entra для проверки подлинности. Logic Apps с поддержкой Azure Arc может выполняться в любой инфраструктуре, но для нее требуется удостоверение с разрешениями на использование размещенных в Azure соединений. Чтобы настроить это удостоверение, создайте регистрацию приложения в идентификаторе Microsoft Entra, который приложение логики использует в качестве требуемого удостоверения.
Примечание.
Поддержка управляемого удостоверения в настоящее время недоступна для Logic Apps с поддержкой Azure Arc.
Чтобы создать регистрацию приложения Microsoft Entra с помощью Azure CLI, выполните следующие действия.
Создайте регистрацию приложения с помощью команды
az ad sp create
.Чтобы проверить все данные, выполните команду
az ad sp show
.В выходных данных обеих команд найдите и сохраните идентификатор клиента, идентификатор объекта, идентификатор арендатора и значения секрета клиента, которые потребуются вам для последующего использования.
Чтобы создать регистрацию приложения Microsoft Entra с помощью портал Azure, выполните следующие действия.
Создайте регистрацию приложения Microsoft Entra с помощью портал Azure.
После завершения создания найдите новую регистрацию приложения на портале.
В меню регистрации выберите Обзори сохраните значения идентификатора клиента, идентификатора арендатора и секрета клиента.
Чтобы найти идентификатор объекта, рядом с полем Управляемое приложение в локальном каталоге выберите имя для регистрации приложения. В представлении свойств скопируйте идентификатор объекта.
Создание и развертывание приложений логики
В зависимости от того, хотите ли вы использовать Azure CLI или Visual Studio Code, выберите соответствующую вкладку, чтобы просмотреть определенные предварительные требования и шаги.
Перед началом работы вам потребуется следующее:
Последнее расширение Azure CLI, установленное на локальном компьютере.
Если у вас нет этого расширения, ознакомьтесь с руководством по установке для используемой вами операционной системы или платформы.
Если вы не уверены, что у вас установлена последняя версия, выполните действия по проверке версии среды и CLI.
Расширение предварительной версии Azure Logic Apps (стандартная версия) для Azure CLI.
Хотя версия Azure Logic Apps с одним клиентом общедоступна, расширение Azure Logic Apps по-прежнему находится на этапе предварительной версии.
Группа ресурсов Azure, в которой создается приложение логики.
Если у вас нет этой группы ресурсов, следуйте инструкциям по ее созданию.
Учетная запись хранения Azure, которая будет использоваться с приложением логики для хранения данных и журнала выполнения.
Если у вас нет такой учетной записи хранения, вы можете создать ее при создании приложения логики или выполнить действия по созданию учетной записи хранения.
Проверка версии среды и CLI
Войдите на портал Azure. Убедитесь, что ваша подписка активна, выполнив следующую команду:
az login
Проверьте версию Azure CLI в терминале или в командном окне, выполнив следующую команду:
az --version
Сведения о последней версии см. в заметках о выпуске.
Если у вас нет последней версии, обновите установку, следуя указаниям в руководстве по установке операционной системы или платформы.
Установка расширения Azure Logic Apps (стандартная версия) для Azure CLI
Установите предварительную версию расширения Azure Logic Apps с одним клиентом (стандартная версия) для Azure CLI, выполнив следующую команду:
az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"
Создать группу ресурсов
Если у вас еще нет группы ресурсов для приложения логики, создайте ее с помощью команды az group create
. Если вы еще не настроили подписку по умолчанию для учетной записи Azure, обязательно используйте параметр --subscription
с идентификатором или именем подписки. В противном случае использовать параметр --subscription
не требуется.
Совет
Чтобы задать подписку по умолчанию, выполните следующую команду и замените MySubscription
на имя или идентификатор подписки.
az account set --subscription MySubscription
Например, следующая команда создает группу ресурсов MyResourceGroupName
с использованием подписки Azure MySubscription
в расположении eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
Если группа ресурсов успешно создана, provisioningState
в выходных данных отображается как Succeeded
:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Создание приложения логики
Чтобы создать приложение логики с поддержкой Azure Arc, выполните команду az logicapp create
с указанными ниже обязательными параметрами. Для приложения логики, пользовательского расположения и среды Kubernetes необходимо использовать одно и то же расположение ресурсов.
Параметры | Description |
---|---|
--name -n |
Уникальное имя для вашего приложения логики. |
--resource-group -g |
Имя группы ресурсов, в которой нужно создать приложение логики. Если у вас ее пока нет, создайте группу ресурсов. |
--storage-account -s |
Учетная запись хранения для использования с приложением логики. Для учетных записей хранения в одной группе ресурсов используйте строковое значение. Для учетных записей хранения в другой группе ресурсов используйте идентификатор ресурса. |
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
Чтобы создать приложение логики с поддержкой Azure Arc с помощью частного образа Реестра контейнеров Azure (ACR), выполните команду az logicapp create
со следующими обязательными параметрами:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
--deployment-container-image-name myacr.azurecr.io/myimage:tag
--docker-registry-server-password MyPassword
--docker-registry-server-user MyUsername
Отображение сведений о приложении логики
Чтобы показать сведения о приложении логики с поддержкой Azure Arc, выполните команду az logicapp show
со следующими обязательными параметрами:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Развертывание приложения логики
Чтобы развернуть приложение логики с поддержкой Azure Arc посредством развертывания с помощью ZIP-файла Kudu Службы приложений Azure, выполните команду az logicapp deployment source config-zip
со следующими обязательными параметрами:
Внимание
Убедитесь, что ZIP-файл содержит артефакты проекта на корневом уровне. Эти артефакты включают в себя все папки рабочего процесса, файлы конфигурации (например, host.json, connections.json) и другие связанные файлы. Не добавляйте дополнительные папки и не помещайте артефакты в папки, которые до этого отсутствовали в структуре проекта. Например, в этом списке показан пример структуры файла MyBuildArtifacts.zip:
MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--src MyBuildArtifact.zip
Запуск приложения логики
Чтобы запустить приложение логики с поддержкой Azure Arc, выполните команду az logicapp start
со следующими обязательными параметрами:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Остановка приложения логики
Чтобы остановить приложение логики с поддержкой Azure Arc, выполните команду az logicapp stop
со следующими обязательными параметрами:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Перезапуск приложения логики
Чтобы перезапустить приложение логики с поддержкой Azure Arc, выполните команду az logicapp restart
со следующими обязательными параметрами:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Удаление приложения логики
Чтобы удалить приложение логики с поддержкой Azure Arc, выполните команду az logicapp delete
со следующими обязательными параметрами:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Настройка проверки подлинности соединения
В настоящее время кластеры Kubernetes с поддержкой Azure Arc не поддерживают использование управляемого удостоверения приложения логики для проверки подлинности управляемых подключений API. Вы создаете эти размещенные в Azure и управляемые соединения при использовании управляемых соединителей в рабочих процессах.
Вместо этого необходимо создать собственную регистрацию приложения в идентификаторе Microsoft Entra. Затем эту регистрацию приложения можно использовать как удостоверение для приложений логики, развернутых и выполняемых в Logic Apps с поддержкой Azure Arc. Дополнительные сведения см. в предварительных требованиях верхнего уровня.
При регистрации приложения вам потребуется идентификатор клиента, идентификатор объекта, идентификатор арендатора и секрет клиента. Если вы используете Visual Studio Code для развертывания, у вас есть встроенный интерфейс для настройки приложения логики с помощью удостоверения Microsoft Entra. Дополнительные сведения см. в статье Создание и развертывание рабочих процессов логических приложений — Visual Studio Code.
Однако если для разработки используется Visual Studio Code, но для развертывания используется Azure CLI или автоматизированные конвейеры, выполните следующие действия.
Настройка параметров соединения и приложения в проекте
В файле connections.json проекта приложения логики найдите
authentication
объект для управляемого подключения. Замените содержимое этого объекта сведениями о регистрации приложения, которые были созданы ранее в предварительных требованиях верхнего уровня:"authentication": { "type": "ActiveDirectoryOAuth", "audience": "https://management.core.windows.net/", "credentialType": "Secret", "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')", "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')", "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')" }
В файле local.settings.json проекта приложения логики добавьте идентификатор клиента, идентификатор объекта, идентификатор арендатора и секрет клиента. После развертывания эти параметры становятся параметрами приложения логики.
{ "IsEncrypted": false, "Values": { <...> "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 Logic Apps на основе одного клиента каждое приложение логики имеет удостоверение, которому политиками доступа предоставлены разрешения на использование размещенных в Azure и управляемых соединений. Эти политики доступа можно настроить с помощью портала Azure или развертываний инфраструктуры.
Шаблон ARM
В шаблоне Azure Resource Manager (ARM) включите следующее определение ресурса для каждого управляемого соединения API и укажите следующие сведения.
Параметр | Описание |
---|---|
<имя_соединения> | Имя управляемого соединения API, например office365 |
<object-ID> | Идентификатор объекта для удостоверения Microsoft Entra, ранее сохраненный из регистрации приложения |
<ИД клиента> | Идентификатор клиента для удостоверения Microsoft Entra, ранее сохраненный из регистрации приложения |
{
"type": "Microsoft.Web/connections/accessPolicies",
"apiVersion": "2016-06-01",
"name": "[concat('<connection-name>'),'/','<object-ID>')]",
"location": "<location>",
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
],
"properties": {
"principal": {
"type": "ActiveDirectory",
"identity": {
"objectId": "<object-ID>",
"tenantId": "<tenant-ID>"
}
}
}
}
Дополнительные сведения см. в документации Microsoft.Web/connections/accesspolicies (шаблон ARM).
Портал Azure
Для этой задачи используйте ранее сохраненный идентификатор клиента в качестве идентификатора приложения.
На портале Azure найдите приложение логики и откройте его. В меню приложения логики в разделе "Рабочие процессы" выберите "Подключения", в котором перечислены все подключения в рабочих процессах для ресурса приложения логики.
В разделе Соединения API выберите соединение, в данном примере это
office365
.В меню соединения в разделе Параметры выберите Политики доступа>Добавить.
В области Добавление политики доступа в поле поиска найдите и выберите ранее сохраненный идентификатор клиента.
По завершении нажмите кнопку "Добавить".
Повторите эти действия для каждого соединения, размещенного в Azure, в приложении логики.
Автоматизация развертывания DevOps
Для создания и развертывания приложений логики с поддержкой Azure Arc можно использовать те же конвейеры и процессы, что и для приложений логики на основе одного клиента. Чтобы автоматизировать развертывания инфраструктуры с помощью конвейеров для DevOps, внесите следующие изменения на уровне инфраструктуры для развертываний, отличных отcontainer и контейнеров.
Стандартное развертывание (noncontainer)
Если вы используете ZIP-развертывание для развертывания приложения логики, не нужно настраивать реестр Docker для размещения образов контейнеров. Несмотря на то, что приложения логики в Kubernetes технически выполняются в контейнерах, Logic Apps на основе Azure Arc управляет этими контейнерами за вас. Для этого сценария выполните следующие задачи при настройке инфраструктуры.
- Сообщите поставщику ресурсов, что вы создаете приложение логики в Kubernetes.
- Включите план службы приложений в развертывание. Дополнительные сведения см. в разделе Включение плана службы приложений в развертывание.
В шаблоне Azure Resource Manager (ARM) включите следующие значения.
Товар | Свойство JSON | Description |
---|---|---|
Расположение | location |
Используйте расположение (регион Azure), совпадающее с вашим пользовательским расположением и расположением среды Kubernetes. Для приложения логики, пользовательского расположения и среды Kubernetes необходимо использовать одно и то же расположение ресурсов. Примечание. Это значение не совпадает с именем пользовательского расположения. |
Тип приложения | kind |
Тип развертываемого приложения, чтобы платформа Azure могла опознать ваше приложение. Для Azure Logic Apps эти сведения выглядят аналогично показанному в следующем примере: kubernetes,functionapp,workflowapp,linux |
Расширенное расположение | extendedLocation |
Для этого объекта требуется "name" вашего пользовательского расположения для среды Kubernetes, а параметр "type" должен иметь значение "CustomLocation" . |
Идентификатор ресурса плана размещения | serverFarmId |
Идентификатор ресурса связанного плана Служба приложений отформатирован следующим образом:
|
строка подключения к хранилищу; | AzureWebJobsStorage |
Строка подключения для учетной записи хранения Важно. Необходимо указать строку подключения для своей учетной записи хранения в шаблоне ARM. В случае рабочих сценариев или сред обязательно защитите секреты и конфиденциальные сведения, например, используя хранилище ключей. |
Шаблон ARM
В следующем примере продемонстрировано определение ресурса Logic Apps с поддержкой Azure Arc, которое вы можете использовать в своем шаблоне ARM. Дополнительные сведения см. в документации Microsoft.Web/sites template format (JSON).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": "kubernetes,functionapp,workflowapp,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"clientAffinityEnabled": false,
"name": "[parameters('name')]",
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "Node|12"
}
}
}
Примечание.
По умолчанию FUNCTIONS_WORKER_RUNTIME параметр приложения логики dotnet
.
node
Ранее было значением по умолчанию. dotnet
Однако теперь используется значение по умолчанию для всех новых и существующих развернутых приложений логики Arc, даже для приложений, имеющих другое значение. Это изменение не должно влиять на среду выполнения рабочего процесса, и все должно работать так же, как и раньше. Дополнительные сведения см. в разделе FUNCTIONS_WORKER_RUNTIME параметра приложения.
Параметр приложения APP_KIND для приложения логики имеет значение workflowapp, но в некоторых сценариях этот параметр приложения отсутствует, например из-за шаблонов Azure Resource Manager или других сценариев, в которых параметр может не быть включен. Если некоторые действия не работают, например действие Execute JavaScript Code или рабочий процесс перестает работать, убедитесь, что параметр приложения APP_KIND существует и имеет значение workflowapp. Дополнительные сведения см. в параметре приложения APP_KIND.
Контейнерное развертывание
Если вы предпочитаете использовать средства контейнеров и процессы развертывания, вы можете контейнеризовать приложения логики и развернуть их в Logic Apps с поддержкой Azure Arc. Для этого сценария выполните следующие высокоуровневые задачи при настройке инфраструктуры.
Настройте реестр Docker для размещения образов контейнеров.
Чтобы контейнеризовать приложение логики, добавьте следующий Dockerfile в корневую папку проекта приложения логики и следуйте инструкциям по созданию и публикации образа в реестре Docker. Например, см. Учебник по созданию и развертыванию образов контейнеров в облаке с помощью задач реестра контейнеров Azure.
Примечание.
Если в качестве поставщика хранилища используется SQL, убедитесь, что вы используете образ функций Azure 3.3.1 или более поздней версии.
FROM mcr.microsoft.com/azure-functions/node:3.3.1 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true \ FUNCTIONS_V2_COMPATIBILITY_MODE=true COPY . /home/site/wwwroot RUN cd /home/site/wwwroot
Сообщите поставщику ресурсов, что вы создаете приложение логики в Kubernetes.
В шаблоне развертывания укажите реестр Docker и образ контейнера, в котором планируется выполнить развертывание. Azure Logic Apps на основе одного клиента использует эти сведения для получения образа контейнера из реестра Docker.
Включите план службы приложений в развертывание. Дополнительные сведения см. в разделе Включение плана службы приложений в развертывание.
В шаблоне Azure Resource Manager (ARM) включите следующие значения.
Товар | Свойство JSON | Description |
---|---|---|
Расположение | location |
Используйте расположение (регион Azure), совпадающее с вашим пользовательским расположением и расположением среды Kubernetes. Для приложения логики, пользовательского расположения и среды Kubernetes необходимо использовать одно и то же расположение ресурсов. Примечание. Это значение не совпадает с именем пользовательского расположения. |
Тип приложения | kind |
Тип развертываемого приложения, чтобы платформа Azure могла опознать ваше приложение. Для Azure Logic Apps эти сведения выглядят аналогично показанному в следующем примере: kubernetes,functionapp,workflowapp,container |
Расширенное расположение | extendedLocation |
Для этого объекта требуется "name" вашего пользовательского расположения для среды Kubernetes, а параметр "type" должен иметь значение "CustomLocation" . |
Имя контейнера | linuxFxVersion |
Имя контейнера, отформатированное следующим образом: DOCKER\|<container-name> |
Идентификатор ресурса плана размещения | serverFarmId |
Идентификатор ресурса связанного плана Служба приложений отформатирован следующим образом:
|
строка подключения к хранилищу; | AzureWebJobsStorage |
Строка подключения для учетной записи хранения Важно. При развертывании в контейнере Docker необходимо указать строку подключения для вашей учетной записи хранения в шаблоне ARM. В случае рабочих сценариев или сред обязательно защитите секреты и конфиденциальные сведения, например, используя хранилище ключей. |
Для ссылки на реестр и образ контейнера Docker включите следующие значения в шаблон:
Товар | Свойство JSON | Description |
---|---|---|
URL-адрес сервера реестра Docker | DOCKER_REGISTRY_SERVER_URL |
URL-адрес для сервера реестра Docker |
Сервер реестра Docker | DOCKER_REGISTRY_SERVER_USERNAME |
Имя пользователя для доступа к серверу реестра Docker |
Пароль для сервера реестра Docker | DOCKER_REGISTRY_SERVER_PASSWORD |
Пароль для доступа к серверу реестра Docker |
Шаблон ARM
В следующем примере продемонстрировано определение ресурса Logic Apps с поддержкой Azure Arc, которое вы можете использовать в своем шаблоне ARM. Дополнительные сведения см. в документации Microsoft.Web/sites template format (ARM template).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": " kubernetes,functionapp,workflowapp,container",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"name": "[parameters('name')]",
"clientAffinityEnabled": false,
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "<docker-registry-server-URL>"
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "<docker-registry-server-username>"
},
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "<docker-registry-server-password>"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "DOCKER|<container-name>"
}
}
}
Примечание.
Ранее значение по умолчанию параметра FUNCTIONS_WORKER_RUNTIME былоnode
.
Теперь это значение по умолчанию для всех новых и существующих развернутых приложений логики "Стандартный", dotnet
даже для приложений, имеющих другое значение. Это изменение не должно влиять на среду выполнения рабочего процесса, и все должно работать так же, как и раньше. Дополнительные сведения см. в разделе FUNCTIONS_WORKER_RUNTIME параметра приложения.
Включение плана службы приложений в развертывание
Независимо от типа развертывания (стандартное или с контейнером) необходимо включить в него план службы приложений. Несмотря на то что этот план менее релевантен для среды Kubernetes, для развертывания, стандартного или с контейнером, по-прежнему требуется план службы приложений.
Хотя другие параметры создания обычно обрабатывают подготовку ресурса Azure для этого плана, если в развертываниях используются шаблоны "инфраструктура как код", необходимо явно создать ресурс Azure для плана. Ресурс плана размещения не изменяется, изменяются только сведения sku
.
В шаблоне Azure Resource Manager (ARM) включите следующие значения.
Товар | Свойство JSON | Description |
---|---|---|
Расположение | location |
Используйте расположение (регион Azure), совпадающее с вашим пользовательским расположением и расположением среды Kubernetes. Для приложения логики, пользовательского расположения и среды Kubernetes необходимо использовать одно и то же расположение ресурсов. Примечание. Это значение не совпадает с именем пользовательского расположения. |
Вид | kind |
Типом развертываемого плана службы приложений должен быть kubernetes,linux . |
Расширенное расположение | extendedLocation |
Для этого объекта требуется "name" вашего пользовательского расположения для среды Kubernetes, а параметр "type" должен иметь значение "CustomLocation" . |
Имя плана размещения | name |
Имя плана службы приложений |
Уровень плана | sku: tier |
Уровень плана службы приложений, K1 |
Имя плана | sku: name |
Имя плана службы приложений, Kubernetes |
Шаблон ARM
В следующем примере описывается определение ресурса плана службы приложений, которое можно использовать с развертыванием приложения. Дополнительные сведения см. в документации Microsoft.Web/serverfarms template format (ARM template).
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"location": "<location>",
"name": "<hosting-plan-name>",
"kind": "kubernetes,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"sku": {
"tier": "Kubernetes",
"name": "K1",
"capacity": 1
},
"properties": {
"kubeEnvironmentProfile": {
"id": "[parameters('kubeEnvironmentId')]"
}
}
}
Изменение поведения масштабирования по умолчанию
Azure Arc Logic Apps автоматически управляет масштабированием приложений логики на основе количества заданий в очереди внутреннего хранилища. Однако можно изменить поведение при масштабировании по умолчанию.
В приложении логики определение рабочего процесса указывает последовательность выполняемых действий. При каждой активации выполнения рабочего процесса среда выполнения Azure Logic Apps создает задание для каждого типа действия в определении рабочего процесса. Затем среда выполнения упорядочивает эти задания в секвенсоре заданий. Этот секвенсор управляет выполнением заданий для определения рабочего процесса, но базовый модуль оркестрации заданий Azure Logic Apps выполняет каждое задание.
Для рабочих процессов с отслеживанием состояния подсистема оркестрации использует сообщения очереди хранилища для планирования заданий в секвенсорах заданий. В фоновом режиме диспетчеры заданий (или экземпляры рабочей роли диспетчера) отслеживают эти очереди заданий. Обработчик оркестрации использует минимальное и максимальное количество экземпляров рабочих ролей по умолчанию, чтобы отслеживать очереди заданий. Для рабочих процессов без отслеживания состояния обработчик оркестрации полностью сохраняет состояния действий в памяти.
Чтобы изменить поведение при масштабировании по умолчанию, необходимо указать разное минимальное и максимальное число экземпляров рабочих ролей, которые отслеживают очереди заданий.
Предварительные требования для изменения масштаба
В кластере Kubernetes с поддержкой Azure Arc в созданном ранее расширении пакета служб приложений для свойства keda.enabled
должно быть задано значение true
. Дополнительные сведения см. в предварительных требованиях верхнего уровня.
Изменение порога масштабирования
В Logic Apps с поддержкой Azure Arc длина очереди заданий активирует событие масштабирования и устанавливает порог, определяющий частоту масштабирования для приложения логики. Можно изменить длину очереди заданий, для которой в качестве значения по умолчанию задано 20
. Чтобы менять масштаб реже, увеличьте длину очереди. Чтобы менять масштаб чаще, уменьшите длину очереди. Может потребоваться выполнять этот процесс методом проб и ошибок.
Чтобы изменить длину очереди, в файле host.json на корневом уровне проекта приложения логики задайте свойство Runtime.ScaleMonitor.KEDA.TargetQueueLength
, например:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Изменение максимальной пропускной способности
В существующем ресурсе приложения логики можно изменить максимальное число экземпляров рабочих ролей. По умолчанию оно равно 2
. Это значение управляет верхним пределом того, сколько экземпляров рабочих ролей могут отслеживать очереди заданий.
Чтобы изменить это максимальное значение, используйте Azure CLI (только для создания приложения логики) и портал Azure.
Azure CLI
Чтобы создать приложение логики, выполните команду az logicapp create
со следующими параметрами:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]
Чтобы настроить максимальное число экземпляров, используйте параметр --settings
:
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "K8SE_APP_MAX_INSTANCE_COUNT=10"
Портал Azure
В параметрах приложения логики на основе одного клиента добавьте или измените K8SE_APP_MAX_INSTANCE_COUNT
значение параметра, выполнив следующие действия.
На портале Azure найдите приложение логики на основе одного клиента и откройте его.
В меню приложения логики в разделе Параметры выберите Настройка.
В области Конфигурация в разделе Параметры приложения добавьте новый параметр приложения или измените существующее значение, если оно уже добавлено.
Выберите Создать параметр приложение и добавьте параметр
K8SE_APP_MAX_INSTANCE_COUNT
с максимальным необходимым значением.Измените существующее значение параметра
K8SE_APP_MAX_INSTANCE_COUNT
.
По завершении сохраните изменения.
Изменение минимальной пропускной способности
В существующем ресурсе приложения логики можно изменить минимальное число экземпляров рабочих ролей. По умолчанию оно равно 1
. Это значение управляет нижним пределом того, сколько экземпляров рабочих ролей могут отслеживать очереди заданий. Для обеспечения высокого уровня доступности или производительности увеличьте это значение.
Чтобы изменить это минимальное значение, используйте Azure CLI или портал Azure.
Azure CLI
Для существующего ресурса приложения логики выполните команду az logicapp scale
со следующими параметрами:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
Чтобы создать приложение логики, выполните команду az logicapp create
со следующими параметрами:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]
Портал Azure
В параметрах приложения логики на основе одного клиента измените значение свойства Scale out , выполнив следующие действия.
На портале Azure найдите приложение логики на основе одного клиента и откройте его.
В меню приложения логики в разделе Параметры выберите Горизонтально увеличить масштаб.
На панели Горизонтальное увеличение масштаба перетащите ползунок минимального числа экземпляров в нужное значение.
По завершении сохраните изменения.
Устранение неполадок
Чтобы получить дополнительные сведения о развернутых приложениях логики, воспользуйтесь следующими параметрами:
Доступ к параметрам и конфигурации приложения
Чтобы получить доступ к параметрам приложения, выполните команду az logicapp config appsettings
со следующими параметрами:
az logicapp config appsettings list --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Чтобы настроить параметр приложения, выполните команду az logicapp config appsettings set
с указанными ниже параметрами. Обязательно используйте параметр --settings
с именем и значением нужного параметра.
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "MySetting=1"
Чтобы удалить параметр приложения, выполните команду az logicapp config appsettings delete
с указанными ниже параметрами. Обязательно используйте параметр --setting-names
с именем параметра, который необходимо удалить.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
Просмотр свойств приложения логики
Чтобы просмотреть сведения и свойства приложения, выполните команду az logicapp show
со следующими параметрами:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Мониторинг активности рабочего процесса
Чтобы просмотреть действие для рабочего процесса в приложении логики, выполните следующие действия.
Найдите свое развернутое приложение логики на портале Azure и откройте его.
В меню приложения логики выберите Рабочие процессы, а затем выберите свой рабочий процесс.
В меню «Рабочий процесс» выберите пункт Монитор.
Сбор журналов
Чтобы получить записанные в журнал данные о приложении логики, включите Application Insights в приложении логики, если оно еще не включено.