Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
适用范围:Azure 逻辑应用(消耗型 + 标准型)
如果需要抽象在开发、测试和生产环境中工作流中更改的值,则可以定义 工作流参数。 使用这些参数而不是特定于环境的变量时,可以更专注于设计工作流业务逻辑,然后稍后插入特定于环境的变量。
本文介绍如何为多租户消耗逻辑应用工作流和单租户标准逻辑应用工作流创建、使用和编辑参数。 你还将了解如何管理环境变量。
有关多租户和单租户 Azure 逻辑应用的详细信息,请参阅 Azure 逻辑应用中的单租户与多租户。
先决条件
Azure 帐户和订阅。 如果没有订阅,可以注册 Azure 帐户。
消耗型或标准型逻辑应用工作流
如果还没有逻辑应用工作流,请参阅 “创建消耗逻辑应用工作流 ”或 “创建标准逻辑应用工作流”。
注意
目前,只能使用 Azure 门户为消耗逻辑应用工作流创建参数。 可以使用 Azure 门户或 Visual Studio Code 为标准逻辑应用工作流创建参数。
消耗型与标准型逻辑应用工作流的参数
对于消耗和标准逻辑应用工作流,可以使用工作流设计器定义参数。 定义参数后,可以从 同一 逻辑应用资源中的任何工作流或连接引用该参数。
在多租户消耗逻辑应用工作流中,可以在设计器中创建和使用参数。 然后,在 Azure 资源管理器模板(ARM 模板)和模板参数文件中定义和设置环境变量。 在此方案中,必须在 部署时定义和设置参数。 此要求意味着,即使必须仅更改一个变量,也必须重新部署逻辑应用的 ARM 模板。
在单租户标准型逻辑应用工作流中,可以通过参数和应用设置在运行时和部署时使用环境变量。 应用设置包含同一逻辑应用资源中所有工作流的全局配置选项。 有关详细信息,请参阅 编辑基于单租户的逻辑应用的主机和应用设置。
重要
使用敏感信息(如包含用户名和密码的连接字符串)时,请确保使用可用的最安全的身份验证流。 例如,在标准逻辑应用工作流中,不支持 securestring
和 secureobject
等安全数据类型。 Microsoft 建议尽量使用托管标识对 Azure 资源访问进行身份验证,并分配具有最低所需特权的角色。
如果此功能不可用,请确保通过其他方式(例如 Azure Key Vault)保护连接字符串,这些连接字符串可与 应用设置一起使用。 然后,可以直接引用安全字符串,例如连接字符串和密钥。 与 ARM 模板类似,在部署时可以定义环境变量,可以在逻辑应用工作流定义中定义应用设置。 然后,可以捕获动态生成的基础结构值,例如连接终结点和存储字符串。 有关详细信息,请参阅Microsoft 标识平台的应用程序类型。
应用设置具有大小限制。 也不能从 Azure 逻辑应用中的某些区域引用它们。 参数可提供比应用设置范围更广的用例,例如支持较大值和复杂对象。
例如,如果使用 Visual Studio Code 作为开发工具在本地运行工作流,则可以使用 parameters.json 文件定义参数。 然后,可以从项目“workflow.json”文件内的任意工作流或者项目“connections.json”文件的任意连接对象中引用此参数文件内的任何参数。 以下列表描述了常见用例:
创建包含所有值,且会在测试时使用这些值的测试参数文件。 在部署时,请将测试参数文件替换为生产参数文件。
对 connections.json 文件的不同部分进行参数化处理。 然后,可以将 connections.json 文件签入源代码管理,并通过 parameters.json 文件管理任何连接。
还可以将复杂对象参数化,如
authentication
JSON 对象。 例如,将authentication
对象值替换为包含单个参数表达式的字符串,例如@parameters('api-auth')
。查看和编辑项目“local.settings.json”文件的应用设置。 然后在参数中引用这些应用设置。
注意
请考虑使用参数作为参数化值而不是应用设置的默认方法。 这样,在需要存储安全密钥或字符串时,可以根据建议从参数中引用应用设置。 可以使用参数来引用应用设置,从而在解决方案中使用这两个选项。
定义、使用和编辑参数
此过程介绍了如何在 Azure 门户中处理针对消耗或标准逻辑应用工作流的参数。
在 Azure 门户中,打开你的逻辑应用资源。
对于标准逻辑应用,在资源边栏菜单中的 “工作流”下,选择“ 工作流”。
在“ 工作流 ”页上,选择要打开设计器的空白工作流。
对于消耗逻辑应用,在资源边栏菜单中的 “开发工具”下,选择设计器以打开工作流。
在设计器工具栏中选择“参数”。
在“参数”窗格中选择“创建参数”。
提供以下与待创建参数相关的信息:
属性 必选 说明 客户 是 要创建参数的名称。 类型 是 参数的数据类型,例如“数组”、“布尔型”、“浮点”、“整形”、“对象”和“字符串”。
注意:标准型逻辑应用工作流不支持安全数据类型,例如securestring
和secureobject
。值 (标准) 是 参数的值。
在标准逻辑应用工作流中,指定参数值。 工作流逻辑、连接信息和参数值不存在于单个位置。 在加载工作流之前,设计器必须能够解析参数值。默认值 (消耗) 是 参数的默认值。 必须指定默认参数值。 工作流逻辑、连接信息和参数值不存在于单个位置。 在加载工作流之前,设计器必须能够解析参数值。
重要提示:对于“安全对象”和“安全字符串”数据类型,请避免设置默认值,因为该值将存储为纯文本。实际值 (消耗量) 否 实际参数值。 以下示例介绍了字符串参数的定义:
完成后,关闭 “参数 ”窗格。 请确保保存工作流,以便保存新的参数定义。
若要从同一逻辑应用的任何工作流中的触发器或操作引用参数,请执行以下步骤:
在设计器中,打开所需的工作流,然后选择触发器或操作。
在信息窗格中的“参数”选项卡上,在要使用该参数的属性中,在该属性的编辑框中进行选择。 选择闪电图标以打开动态内容列表。
在该列表中,在 “参数”下,选择之前创建的参数。
若要在同一逻辑应用中查看或编辑参数,请执行以下作:
在工作流设计器中打开工作流。 对于消耗型逻辑应用,选择 开发工具>逻辑应用设计器。 对于标准逻辑应用,请选择 “工作流>工作流”,然后选择一个工作流以打开设计器。
在设计器工具栏中选择“参数”。
“ 参数 ”窗格随即打开,并显示在该逻辑应用中定义的所有参数。
仅限标准工作流:若要在批量 JSON 中查看或编辑,请在资源边栏菜单上选择“ 参数”。 在“ 参数 ”窗格中,选择“ JSON 中的编辑”。
“参数”JSON 视图会打开并显示在逻辑应用的工作流内定义的所有参数。
Visual Studio Code
此过程介绍如何使用 Visual Studio Code 处理标准逻辑应用工作流的参数。
在名为“parameters.json”的项目根级别 JSON 文件中,定义“全部”参数及其值。 此文件内含包含“键值”对的对象。 每个 键 都是每个参数的名称。 每个 值 都是参数的结构。 每个结构都需要同时包含
type
和value
声明。重要
parameters.json 文件必须定义并包含您引用或使用项目中其他位置的所有参数及其值。 此要求包括工作流定义和连接。
基本参数文件如以下示例所示:
{ "responseString": { "type": "string", "value": "hello" }, "functionAuth": { "type": "object", "value": { "type": "QueryString", "name": "Code", "value": "@appsetting('<AzureFunctionsOperation-FunctionAppKey>')" } } }
注意
在 parameters.json 文件中,
@appsetting
是唯一有效的表达式类型。若要引用触发器或操作输入中的参数,请使用表达式
@parameters('<parameter-name>')
。
参数化连接文件
若要对 connections.json 文件进行参数化处理,请将文本值(如 ConnectionRuntimeUrl
)替换为单个 parameters()
表达式,例如 @parameters('api-runtimeUrl')
。
connections.json 中唯一有效的表达式类型是 @parameters
和 @appsetting
。
重要
如果在开发过程中将 connections.json 文件参数化,则本地和 Azure 门户中的设计器体验将受到限制。 如果需要使用设计器进行开发,请改用未参数化的connections.json文件。 然后,在部署管道中,替换为参数化文件。 运行时仍适用于参数化。 设计器改进正在开发中。
以下示例展示了同时采用“应用设置”和“参数”,且经参数化处理的 connections.json 文件。 此示例文件将参数用于复杂的 blob_auth
身份验证对象,并将应用设置用于其他值。
你希望在可能的情况下使用参数。 由于应用设置是在部署期间生成的,并且更容易在开发流水线中动态填充,因此在此场景中,应该优先选择使用应用设置而不是参数。 在这种情况下,可以将参数用于身份验证对象,因为不太可能在工作流中引用参数:
{
"serviceProviderConnections": {
"serviceBus": {
"parameterValues": {
"connectionString": "@appsetting('serviceBus_connectionString')"
},
"serviceProvider": {
"id": "/serviceProviders/serviceBus"
},
"displayName": "servicebus"
}
},
"managedApiConnections": {
"azureblob": {
"api": {
"id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/providers/Microsoft.Web/locations/@{appsetting('WORKFLOWS_LOCATION_NAME')}/managedApis/azureblob"
},
"connection": {
"id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/resourceGroups/@{appsetting('WORKFLOWS_RESOURCE_GROUP_NAME')}/providers/Microsoft.Web/connections/azureblob"
},
"connectionRuntimeUrl": "@appsetting('BLOB_CONNECTION_RUNTIMEURL')",
"authentication": "@parameters('blob_auth')"
}
}
}
注意
当您在纯文本中使用内联表达式时,请确保通过用大括号{}括起来来使用该表达式的插值格式。 此格式有助于避免分析问题。
例如,如果有"<text>/@<function-name>('<parameter-name>')/<text>"
,请使用以下版本:"<text>/@{<function-name>('<parameter-name>')}/<text>"
。
有关详细信息,请参阅 有关使用函数的注意事项。
管理参数文件
通常,需要管理参数文件的多个版本。 可以将目标值用于不同的部署环境,例如开发、测试和生产环境。 这些参数文件的管理方式与管理 ARM 模板参数文件类似。 部署到特定环境时,通常可通过 DevOps 的管道来升级相应的参数文件。
若要使用 Azure CLI 动态替换参数文件,请运行以下命令:
az functionapp deploy --resource-group MyResourceGroup --name MyLogicApp --src-path C:\parameters.json --type static --target-path parameters.json
如果有基于 NuGet 的逻辑应用项目,则必须更新项目文件(<logic-app-name.csproj>),以在生成输出中包含参数文件,例如:
<ItemGroup>
<None Update="parameters.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
注意
目前,动态替换参数文件的功能在 Azure 门户或工作流设计器中不可用。
有关为 DevOps 部署设置逻辑应用的详细信息,请参阅以下文章:
管理应用设置
在标准逻辑应用中,应用设置包含同一逻辑应用中 所有工作流 的全局配置选项。 在 Visual Studio Code 本地运行工作流时,可以将这些应用设置作为 local.settings.json 文件中的本地环境变量并加以访问。 然后,可以在参数中引用这些应用设置。
以下部分介绍如何为 Visual Studio Code、Azure 门户、Azure CLI 和 ARM (Bicep) 模板添加、更新或删除应用设置。
使用 Azure 门户查看应用设置
若要在 Azure 门户中查看逻辑应用资源的应用设置,请执行以下步骤:
在 Azure 门户中,打开你的逻辑应用资源。
在资源边栏菜单中的 “设置”下,选择“ 环境变量”。
在“环境变量”页上的“应用设置”选项卡上,查看逻辑应用的应用设置。
若要查看所有值,请选择“显示值”。 或者,若要查看单个值,请选择该值。
若要新增设置,请执行以下步骤:
在 “应用程序设置”下,选择“ + 添加”。
对于“名称”,输入新设置的键或名称。
对于“值”,输入新设置的值。
如有必要,请选择 “部署槽位”设置。
准备好创建新的键值对时,请选择“应用”。
使用 Azure CLI 查看应用设置
若要使用 Azure CLI 查看当前应用设置,请运行 az logicapp config appsettings list
命令。 请确保命令包含 --name -n
和 --resource-group -g
参数,例如:
az logicapp config appsettings list --name MyLogicApp --resource-group MyResourceGroup
若要使用 Azure CLI 添加或更新应用设置,请运行命令 az logicapp config appsettings set
。 请确保命令包含 --name n
和 --resource-group -g
参数。 例如,以下命令可用于创建一个设置,该设置具有名为 CUSTOM_LOGIC_APP_SETTING
的键,其值为 12345
:
az logicapp config appsettings set --name MyLogicApp --resource-group MyResourceGroup --settings CUSTOM_LOGIC_APP_SETTING=12345
在资源管理器或 Bicep 文件中查看和定义应用设置
若要在 ARM 模板或 Bicep 文件中查看和定义应用设置,请查找逻辑应用的资源定义并更新 appSettings
JSON 对象。 有关完整资源定义,请参阅 ARM 模板参考。
此示例显示 ARM 模板或 Bicep 文件的文件设置:
"appSettings": [
{
"name": "string",
"value": "string"
},
{
"name": "string",
"value": "string"
},
<...>
],