Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Azure Logic Apps (стандартная версия)
В этом руководстве основное внимание уделяется тому, как настроить развертывание для проекта логического приложения типа "Стандартный" из Visual Studio Code в вашу инфраструктуру с помощью средств и процессов DevOps. Если ваше логическое приложение уровня Standard существует в портале Azure, вы можете скачать файлы артефактов вашего приложения для развертывания через DevOps. В зависимости от того, хотите ли вы использовать GitHub или Azure DevOps, выберите путь и средства, которые лучше всего работают в сценарии развертывания.
Если у вас нет стандартного приложения логики, вы по-прежнему можете следовать этому руководству с помощью связанных примеров проектов приложения логики "Стандартный" и примеров развертывания в Azure через GitHub или Azure DevOps. Дополнительные сведения см. в обзоре развертывания DevOps для Azure Logic Apps с одним клиентом.
Предварительные условия
Учетная запись Azure с активной подпиской. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
Стандартное логическое приложение для использования с вашими инструментами и процессами DevOps.
Вы можете либо скачать файлы артефактов для ресурса приложения логики уровня "Стандартный" из портала Azure, либо использовать проект приложения логики Уровня "Стандартный", созданный в Visual Studio Code с расширением Azure Logic Apps (Standard) для Visual Studio Code.
Портал: Скачанный ZIP-файл содержит файлы артефактов стандартного приложения логики, такие как workflow.json, connections.json, host.json и local.settings.json. См. статью "Скачать файлы артефактов приложения логики «Стандартный» с портала".
Visual Studio Code: вам нужен пустой ресурс логического приложения уровня "Стандартный" в портале Azure для назначения развертывания. Чтобы быстро создать пустой ресурс приложения логики уровня "Стандартный", см. статью "Создание рабочих процессов приложения логики на основе одного клиента" на портале.
Если у вас нет существующего логического приложения или инфраструктуры, вы можете использовать связанный пример проектов Standard logic для развертывания примера логического приложения и инфраструктуры, исходя из того, хотите ли вы использовать GitHub или Azure DevOps. Дополнительные сведения о включенных примерах проектов и ресурсов для запуска примера приложения логики см. в разделе "Развертывание ресурсов инфраструктуры".
Развертывание ресурсов инфраструктуры
Чтобы попробовать внедрение DevOps без предварительной настройки стандартного логического приложения или инфраструктуры, используйте следующие примеры проектов, чтобы настроить развертывание для примера приложения Standard Logic и инфраструктуры, исходя из того, хотите ли вы использовать 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, содержащий все необходимые ресурсы инфраструктуры, в том числе эти политики доступа.
Например, на следующей схеме показаны зависимости между стандартным проектом логического приложения и ресурсами инфраструктуры.
Скачивание артефактов логического приложения «Стандартный» с портала
Если ваше приложение логики Standard находится в портале 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, чтобы настроить разрешения для развернутой логической программы.
Для параметров приложения есть два варианта:
Развертывание пайплайна (рекомендуется): используйте параметр
appSettingsв задаче Azure Function App Deploy для Azure DevOps или эквивалентную конфигурацию в GitHub Actions, чтобы автоматически создавать настройки приложения во время развертывания. Дополнительные сведения см. в примерах развертывания в предыдущих разделах.Настройка вручную. Создайте параметры приложения вручную на портале Azure после развертывания на основе файла local.settings.json в проекте приложения логики.
Связанный контент
Мы хотели бы узнать о вашем опыте работы со службой Azure Logic Apps с одним клиентом!
- При возникновении ошибок или проблем опубликуйте свою проблему на портале GitHub.
- Для вопросов, запросов, комментариев и других отзывов используйте эту форму обратной связи.