创建 Azure 资源管理器模板,以自动为 Azure 逻辑应用部署消耗型逻辑应用
适用于:Azure 逻辑应用(消耗)
为帮助你自动创建和部署消耗型逻辑应用,本文介绍了创建 Azure 资源管理器模板的方法。 Azure 逻辑应用还提供一个可以重复使用的预生成逻辑应用 Azure 资源管理器模板,使用它不仅可以创建消耗型逻辑应用,还可以定义对部署使用的资源和参数。 可以将此模板用于自己的业务方案,也可以根据需要自定义此模板。 若要大致了解包含工作流定义以及用于部署的其他必要资源的模板的结构和语法,请参阅概述:使用 Azure 资源管理器模板自动部署逻辑应用。
重要
本文仅适用于消耗型逻辑应用,不适用于标准逻辑应用。 确保模板中的连接使用与逻辑应用相同的 Azure 资源组和位置。
有关 Azure 资源管理器模板的详细信息,请参阅以下主题:
使用 Visual Studio 创建模板
若要创建最适合部署的有效参数化逻辑应用模板,请使用 Visual Studio(免费的社区版或更高版本)以及适用于 Visual Studio 的 Azure 逻辑应用工具。 然后,可以在 Visual Studio 中创建逻辑应用,或者在 Azure 门户中找到某个现有逻辑应用并将其下载到 Visual Studio。
下载逻辑应用后,你将获得一个模板,其中包含逻辑应用和其他资源(例如连接)的定义。 该模板还会参数化或定义用于部署逻辑应用和其他资源的值的参数。 可在单独的参数文件中提供这些参数的值。 这样,就可以根据部署需求更轻松地更改这些值。 有关详细信息,请参阅以下主题:
使用 Azure PowerShell 创建模板
可以结合 LogicAppTemplate 模块使用 Azure PowerShell 创建资源管理器模板。 此开源模块首先评估逻辑应用,以及逻辑应用使用的任何连接。 然后,该模块生成模板资源以及用于部署的必需参数。
例如,假设某个逻辑应用要从 Azure 服务总线队列接收消息,并将数据上传到 Azure SQL 数据库。 该模块会保留所有业务流程逻辑,并参数化 SQL 和服务总线连接字符串,使你能够根据部署需求提供和更改这些值。
这些示例演示如何使用 Azure 资源管理器模板、Azure DevOps 中的 Azure Pipelines,以及 Azure PowerShell 来创建和部署逻辑应用:
- 示例:使用 Azure 逻辑应用协调 Azure Pipelines
- 示例:从 Azure 逻辑应用连接到 Azure 存储帐户并在 Azure DevOps 中使用 Azure Pipelines 进行部署
- 示例:从 Azure 逻辑应用连接到 Azure 服务总线队列并在 Azure DevOps 中使用 Azure Pipelines 进行部署
- 示例:为 Azure 逻辑应用设置 Azure Functions 操作并在 Azure DevOps 中使用 Azure Pipelines 进行部署
- 示例:从 Azure 逻辑应用连接到集成帐户并在 Azure DevOps 中使用 Azure Pipelines 进行部署
安装 PowerShell 模块
安装 Azure PowerShell(如果尚未安装)。
若要以最简单的方式从 PowerShell 库安装 LogicAppTemplate 模块,请运行以下命令:
Install-Module -Name LogicAppTemplate
若要更新到最新版本,请运行以下命令:
Update-Module -Name LogicAppTemplate
或者,若要手动安装,请遵循 GitHub 中适用于逻辑应用模板创建者的步骤。
安装 Azure 资源管理器客户端
若要使 LogicAppTemplate 模块能够使用任何 Azure 租户和订阅访问令牌,请安装 Azure 资源管理器客户端工具,这是一个可以调用 Azure 资源管理器 API 的简单命令行工具。
使用此工具运行 Get-LogicAppTemplate
命令时,该命令首先会通过 ARMClient 工具获取访问令牌,通过管道将该令牌传送到 PowerShell 脚本,然后以 JSON 文件的形式创建模板。 有关该工具的详细信息,请参阅这篇有关 Azure 资源管理器客户端工具的文章。
使用 PowerShell 生成模板
若要在安装 LogicAppTemplate 模块和 Azure CLI 后生成模板,请运行以下 PowerShell 命令:
$parameters = @{
Token = (az account get-access-token | ConvertFrom-Json).accessToken
LogicApp = '<logic-app-name>'
ResourceGroup = '<Azure-resource-group-name>'
SubscriptionId = $SubscriptionId
Verbose = $true
}
Get-LogicAppTemplate @parameters | Out-File C:\template.json
若要根据建议从 Azure 资源管理器客户端工具以管道方式传送令牌,请运行以下命令,其中的 $SubscriptionId
是你的 Azure 订阅 ID:
$parameters = @{
LogicApp = '<logic-app-name>'
ResourceGroup = '<Azure-resource-group-name>'
SubscriptionId = $SubscriptionId
Verbose = $true
}
armclient token $SubscriptionId | Get-LogicAppTemplate @parameters | Out-File C:\template.json
提取后,可运行以下命令基于模板创建参数文件:
Get-ParameterTemplate -TemplateFile $filename | Out-File '<parameters-file-name>.json'
对于包含 Azure Key Vault 引用的提取内容(仅限静态值),请运行以下命令:
Get-ParameterTemplate -TemplateFile $filename -KeyVault Static | Out-File $fileNameParameter
参数 | 必需 | 说明 |
---|---|---|
TemplateFile | 是 | 模板文件的文件路径 |
KeyVault | 否 | 一个枚举,描述如何处理可能的 Key Vault 值。 默认为 None 。 |