如何在ADF触发器中传参以控制linked service连接对应环境的数据库
ADF 跨环境数据库连接配置方案
完全可以通过trigger传参的方式实现多环境数据库连接自动切换,具体配置流程如下:
1. 为Pipeline添加环境参数
进入目标Pipeline的参数配置界面,新增一个字符串类型的参数,命名为env,可设置默认值为DEV方便开发调试。
2. 配置Linked Service动态参数
- 打开需要切换环境的数据库关联服务,开启参数配置功能,新增差异化配置项对应的参数,例如
dbServer(数据库服务器地址)、dbName(数据库名称)。 - 将关联服务中固定写死的服务器地址、数据库名称字段替换为参数引用,格式为
@linkedService().dbServer、@linkedService().dbName。
3. 建立Pipeline参数到Linked Service的映射
打开使用上述关联服务的数据集,在关联服务的参数配置栏,通过Pipeline的env参数做动态赋值,示例逻辑如下:
@if( equals(pipeline().parameters.env, 'DEV'), 'dev-sql.database.chinacloudapi.cn', if( equals(pipeline().parameters.env, 'QA'), 'qa-sql.database.chinacloudapi.cn', 'uat-sql.database.chinacloudapi.cn' ) )
如果不同环境的数据库名称也有差异,用同样的逻辑给dbName参数赋值即可。
4. 为不同环境的Trigger配置参数默认值
分别打开DEV、QA、UAT三套环境对应的Trigger,在参数配置栏给Pipeline的env参数分别赋值为对应环境标识:DEV、QA、UAT。
所有配置完成后发布变更,不同环境的Trigger触发Pipeline运行时,会自动将环境标识参数传递到Pipeline,最终控制关联服务连接对应环境的数据库。
提示:如果数据库账号密码也分环境,建议将对应环境的敏感凭证存入Key Vault,关联服务直接从Key Vault拉取对应环境的密钥,不要明文配置在参数中避免泄露。
内容的提问来源于stack exchange,提问作者Pablo Gûereca
相关产品推荐
相关产品推荐

