使用 ARM 模板在多租户 Azure 逻辑应用中创建消耗逻辑应用工作流

适用于:Azure 逻辑应用(消耗)

为了帮助你自动创建和部署消耗逻辑应用,本指南演示如何创建 Azure 资源管理器模板。 Azure 逻辑应用提供了 一个预生成的逻辑应用 Azure 资源管理器模板 ,可以重复使用该模板,不仅可以创建消耗逻辑应用,还可以定义用于部署的资源和参数。 可以将此模板用于自己的业务方案,也可以根据需要自定义此模板。 若要大致了解包含工作流定义以及用于部署的其他必要资源的模板的结构和语法,请参阅概述:使用 Azure 资源管理器模板自动部署逻辑应用

重要

本指南仅适用于消耗逻辑应用,不适用于标准逻辑应用。 确保模板中的连接使用与逻辑应用相同的 Azure 资源组和位置。

有关详细信息,请参见:

先决条件

需要一个 Azure 帐户和订阅。 获取 Azure 帐户

使用 Azure PowerShell 创建模板

可以结合 LogicAppTemplate 模块使用 Azure PowerShell 创建资源管理器模板。 此开源模块首先评估逻辑应用程序以及该应用程序所使用的任何连接。 然后,该模块生成模板资源以及用于部署的必需参数。

例如,假设某个逻辑应用要从 Azure 服务总线队列接收消息,并将数据上传到 Azure SQL 数据库。 该模块保留业务流程逻辑并参数化 SQL 和服务总线连接字符串,以便可以根据部署需求提供和更改这些值。

这些示例演示如何使用 Azure 资源管理器模板、Azure DevOps 中的 Azure Pipelines,以及 Azure PowerShell 来创建和部署逻辑应用:

安装 PowerShell 模块

  1. 安装 Azure PowerShell(如果尚未安装)。

  2. 若要以最简单的方式从 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

后续步骤