如何通过Azure DevOps发布变量向Azure Data Factory管道传递环境专属参数值
实现多环境动态传参的操作方案
你可以通过拆分ARM模板顶层公共参数+环境差异化参数文件的方式完成需求,具体操作如下:
- 第一步:在ARM模板的顶层
parameters节点新增两个全局参数,用于接收不同环境的配置值
"parameters": { "factoryName": { "type": "string" }, // 新增通知类参数 "notificationEmailTo": { "type": "string", "metadata": { "description": "告警通知收件人邮箱,不同环境传入对应值" } }, "notificationSubject": { "type": "string", "metadata": { "description": "告警通知邮件主题,不同环境传入对应值" } } }
- 第二步:替换管道定义中硬编码的
EmailTo和Subject取值,改为引用ARM顶层参数的写法
原代码中对应修改后的片段如下:
"parameters": { "EmailTo": "[parameters('notificationEmailTo')]", "ErrorMessage": { "value": "@concat(item().TABLE_NAME, ',', item().COLUMN_NAME, ' has been added in xxx. Please review. Change will be processed to xxxxx automatically in 7 days.' )", "type": "Expression" }, "PipelineName": { "value": "@pipeline().Pipeline", "type": "Expression" }, "Subject": { "value": "[parameters('notificationSubject')]", "type": "Expression" } }
- 第三步:为不同环境创建独立的ARM参数文件,部署时指定对应参数文件即可
示例Dev环境的参数文件dev.parameters.json配置如下:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "factoryName": { "value": "adf-dev-xxxx" }, "notificationEmailTo": { "value": "dev-team@abc.com" }, "notificationSubject": { "value": "【DEV环境】数据表结构变更通知" } } }
QA环境只需修改参数文件中对应取值,部署时指定QA参数文件即可实现环境差异化配置。
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

