Настройка развертывания DevOps для приложений логики Уровня "Стандартный" в azure Logic Apps с одним клиентом
Область применения: Azure Logic Apps (стандартная версия)
В этом руководстве в основном показано, как настроить развертывание для проекта приложения логики уровня "Стандартный" в Visual Studio Code в инфраструктуре с помощью средств и процессов DevOps. Если приложение логики уровня "Стандартный" существует в портал Azure вместо этого, вы можете скачать артефакты приложения логики для использования с развертыванием DevOps. В зависимости от того, хотите ли вы использовать GitHub или Azure DevOps, выберите путь и средства, которые лучше всего работают в сценарии развертывания.
Если у вас нет стандартного приложения логики, вы по-прежнему можете следовать этому руководству с помощью связанных примеров проектов приложения логики "Стандартный" и примеров развертывания в Azure через GitHub или Azure DevOps. Дополнительные сведения см. в обзоре развертывания DevOps для Azure Logic Apps с одним клиентом.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
Приложение логики "Стандартный" для использования с инструментами и процессами DevOps.
Вы можете скачать артефакты для ресурса приложения логики уровня "Стандартный" из портал Azure или использовать проект приложения логики уровня "Стандартный", созданный с помощью Visual Studio Code и расширения Azure Logic Apps (стандартный) для Visual Studio Code.
Портал. Скачанный ZIP-файл содержит файлы артефактов приложения логики уровня "Стандартный", например workflow.json, connections.json, host.json и local.settings.json. С портала см. статью "Скачать файлы артефактов приложения логики уровня "Стандартный".
Visual Studio Code: вам нужен пустой ресурс приложения логики уровня "Стандартный" в портал Azure для назначения развертывания. Чтобы быстро создать пустой ресурс приложения логики уровня "Стандартный", просмотрите статью "Создание рабочих процессов приложения логики на основе одного клиента" на портале.
Если у вас нет существующего приложения логики или инфраструктуры, можно использовать связанные примеры проектов приложения логики уровня "Стандартный" для развертывания примера приложения логики и инфраструктуры на основе того, хотите ли вы использовать GitHub или Azure DevOps. Дополнительные сведения о включенных примерах проектов и ресурсов для запуска примера приложения логики см. в статье "Развертывание ресурсов инфраструктуры".
Развертывание ресурсов инфраструктуры
Чтобы попробовать работу с развертыванием DevOps без предыдущего приложения логики уровня "Стандартный" или настройки инфраструктуры, используйте следующие примеры проектов, чтобы настроить развертывание для примера приложения логики "Стандартный" и инфраструктуры на основе того, следует ли использовать GitHub или Azure DevOps:
Пример использования GitHub для службы Azure Logic Apps с одним клиентом
В этом примере приведен пример проекта приложения логики уровня "Стандартный", а также примеры для развертывания Azure и GitHub Actions.
Пример использования Azure DevOps для службы Azure Logic Apps с одним клиентом
В этом примере приведен пример проекта приложения логики "Стандартный", а также примеры развертывания Azure и Azure Pipelines.
Оба примера включают следующие ресурсы, используемые приложением логики "Стандартный" для выполнения:
Имя ресурса | Обязательное поле | Описание |
---|---|---|
Стандартное приложение логики | Да | Этот ресурс Azure содержит рабочие процессы, выполняемые в службе Azure Logic Apps с одним клиентом. Важно. В проекте приложения логики каждый рабочий процесс имеет workflow.json файл, содержащий определение рабочего процесса, который включает определения триггера и действия. |
Подключения API | Да, если существуют подключения API | Эти ресурсы Azure определяют любые управляемые подключения API, используемые рабочими процессами для выполнения управляемых операций с соединителем, таких как Office 365, SharePoint и т. д. Важно! В проекте приложения логики файл connections.json содержит метаданные, конечные точки и ключи для любых управляемых подключений API и функций Azure, используемых рабочими процессами. Чтобы в каждой среде использовать разные подключения и функции, не забудьте параметризовать этот файл connections.json и обновить конечные точки. Дополнительные сведения см. в статье Ресурсы подключения API и политики доступа. |
План размещения функций уровня "Премиум" или службы приложений | Да | В этом ресурсе Azure указываются ресурсы размещения, используемые для запуска приложения логики (например, вычисление, обработка, хранение, сетевые подключения и т. д.). Важно. В текущем интерфейсе ресурс приложения логики "Стандартный" требует плана размещения рабочего процесса "Стандартный", который основан на плане размещения Функции Azure Premium. |
Учетная запись хранения Azure | Да, для рабочих процессов с отслеживанием и без отслеживания состояния | В этом ресурсе Azure хранятся метаданные, ключи для управления доступом, состояние, входные и выходные данные, журнал выполнения и другие сведения о рабочих процессах. |
Application Insights | Необязательно | Этот ресурс Azure предоставляет возможности мониторинга рабочих процессов. |
Шаблон Azure Resource Manager (ARM) | Необязательно | Этот ресурс Azure определяет базовое развертывание инфраструктуры, которое можно использовать повторно или экспортировать. |
Ресурсы подключения API и политики доступа
В Azure Logic Apps с одним клиентом каждый ресурс подключения к управляемому API в рабочем процессе требует связанной политики доступа. Эта политика требует удостоверения приложения логики, чтобы предоставить правильные разрешения для доступа к управляемой инфраструктуре соединителя. Прилагаемые образцы проектов включают шаблон ARM, содержащий все необходимые ресурсы инфраструктуры, в том числе эти политики доступа.
Например, на следующей схеме показаны зависимости между проектом приложения логики "Стандартный" и ресурсами инфраструктуры:
Скачивание артефактов приложения логики уровня "Стандартный" на портале
Если приложение логики "Стандартный" находится в портал Azure, можно скачать ZIP-файл, содержащий файлы артефактов приложения логики, включая workflow.json, connections.json, host.json и local.settings.json.
В портал Azure найдите и откройте ресурс приложения логики "Стандартный".
В меню приложения логики выберите Overview (Обзор).
На панели инструментов "Обзор" выберите "Скачать содержимое приложения". В появившемся поле подтверждения нажмите кнопку "Скачать".
Когда появится запрос, выберите "Сохранить как", перейдите к нужной локальной папке и нажмите кнопку "Сохранить ", чтобы сохранить ZIP-файл.
Извлеките ZIP-файл.
В Visual Studio Code откройте папку, содержащую распакуированные файлы.
При открытии папки Visual Studio Code автоматически создает рабочую область.
Измените содержимое папки, чтобы включить только папки и файлы, необходимые для развертывания с помощью DevOps.
По завершении сохраните изменения.
Создание и развертывание приложения логики (zip-развертывание)
Вы можете настроить конвейеры сборки и выпуска либо внутри, ни за пределами Azure, которые развертывают приложения логики уровня "Стандартный" в инфраструктуре.
Сборка проекта
Отправьте проект приложения логики уровня "Стандартный" и файлы артефактов в исходный репозиторий, например GitHub или Azure DevOps.
Настройте конвейер сборки на основе типа проекта приложения логики, выполнив следующие соответствующие действия:
Тип проекта Описание и действия На основе NuGet Структура проекта с использованием NuGet основана на платформе .NET Framework. Для сборки этих проектов обязательно выполните этапы сборки .NET Standard. Дополнительные сведения см. в документации Создание пакета NuGet с помощью MSBuild. На основе пакета Проект на основе набора расширений не зависит от языка и не требует каких-либо действий по сборке, зависящих от языка. Запакуйте файлы проекта с помощью любого нужного метода.
Внимание
Убедитесь, что ZIP-файл содержит фактические артефакты сборки проекта на корневом уровне, включая все папки рабочего процесса, файлы конфигурации, такие как host.json, connections.json, local.settings.json и другие связанные файлы. Не добавляйте дополнительные папки и не помещайте артефакты в папки, которые до этого отсутствовали в структуре проекта.
Например, в следующем списке показан пример структуры файлов MyBuildArtifacts.zip :
MyStatefulWorkflow1-Folder MyStatefulWorkflow2-Folder connections.json host.json local.settings.json
Перед выпуском в Azure
Управляемые подключения API в файле connections.json проекта приложения логики создаются непосредственно для локального использования в Visual Studio Code. Прежде чем вы сможете освободить артефакты проекта из Visual Studio Code в Azure, необходимо обновить эти артефакты. Для использования управляемых подключений API в Azure необходимо обновить их методы проверки подлинности, чтобы они имели правильный формат для использования в Azure.
Обновление типа проверки подлинности
Для каждого управляемого подключения API, использующего проверку подлинности, необходимо обновить authentication
объект из локального формата в Visual Studio Code в формате портал Azure, как показано в первом и втором примерах кода соответственно:
Формат Visual Studio Code
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "Raw",
"scheme": "Key",
"parameter": "@appsetting('sql-connectionKey')"
}
}
}
}
Формат портала Azure
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "ManagedServiceIdentity",
}
}
}
}
Создание подключений API по мере необходимости
Если вы развертываете приложение логики уровня "Стандартный" в регионе Azure или подписке, отличной от локальной среды разработки, перед развертыванием необходимо также создать эти управляемые подключения API. Самый простой способ создания управляемых подключений API — развертывание шаблона Azure Resource Manager (шаблона ARM).
В следующем примере показано определение ресурса подключения API, управляемого SQL, в шаблоне ARM:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
Чтобы найти необходимые значения для properties
объекта, чтобы завершить определение ресурса подключения, используйте следующий API для определенного соединителя:
GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01
В ответе найдите connectionParameters
объект, содержащий необходимые сведения для завершения определения ресурса для этого конкретного соединителя. Далее приведен пример определения ресурса для управляемого подключения SQL:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
В качестве альтернативы можно записать и проверить трассировку сети при создании подключения с помощью конструктора рабочих процессов в Azure Logic Apps. PUT
Найдите вызов, который отправляется в API управляемого соединителя, как описано ранее, и просмотрите текст запроса для всех необходимых сведений.
Определение ресурсов локального шлюза данных
Если подключение использует локальный ресурс шлюза данных, это определение ресурса существует отдельно от определения ресурса соединителя. Сведения об определении ресурсов шлюза данных см. в статье "Автоматизация развертывания для Azure Logic Apps" с помощью шаблонов Azure Resource Manager и Microsoft.Web connectionGateways.
Выпуск в Azure
Чтобы настроить конвейер выпуска, развертываемого в Azure, выполните соответствующие шаги для GitHub, Azure DevOps или Azure CLI.
Для развертываний GitHub можно развернуть приложение логики с помощью GitHub Actions (например, используя GitHub Actions в Функциях Azure). Для этого действия необходимо передать следующие сведения:
- Имя приложения логики, используемое для развертывания
- ZIP-файл, содержащий фактические артефакты сборки, включая все папки рабочего процесса, файлы конфигурации, такие как host.json, connections.json, local.settings.json и любые другие связанные файлы.
- Профиль публикации, используемый для проверки подлинности.
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'MyLogicAppName'
package: 'MyBuildArtifact.zip'
publish-profile: 'MyLogicAppPublishProfile'
Дополнительные сведения см. в статье "Непрерывная доставка" с помощью GitHub Action.
После развертывания в Azure
У каждого подключения API есть политики доступа. После завершения развертывания ZIP необходимо открыть ресурс приложения логики уровня "Стандартный" в портал Azure и создать политики доступа для каждого подключения API, чтобы настроить разрешения для развернутого приложения логики. При развертывании ZIP-файла параметры приложения не создаются автоматически. После развертывания необходимо создать эти параметры приложения на основе файла local.settings.json в проекте приложения логики.
Связанный контент
Мы хотели бы узнать о вашем опыте работы со службой Azure Logic Apps с одним клиентом!
- При возникновении ошибок или проблем опубликуйте свою проблему на портале GitHub.
- Для вопросов, запросов, комментариев и других отзывов используйте эту форму обратной связи.