Azure Data Factory导出ARM模板时连接字符串参数为空的ADO部署问题
Azure Data Factory ARM模板部署时ConnectionString参数为空的解决方法
检查链接服务的ARM模板参数配置
- 打开Git adf-publish分支里对应链接服务的ARM模板文件(路径一般是
Microsoft.DataFactory/factories/linkedservices/<链接服务名>.json) - 确认
parameters段里有没有connectionString相关的参数定义,要是没有就手动加上,示例:"parameters": { "SqlLinkedService_connectionString": { "type": "secureString", "defaultValue": "Server=tcp:@{linkedService().properties.parameters.serverName.value},1433;Initial Catalog=@{linkedService().properties.parameters.databaseName.value};Persist Security Info=False;User ID=@{linkedService().properties.parameters.userName.value};Password=@{linkedService().properties.parameters.password.value};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" } } - 同时要保证模板里
properties.connectionString部分引用这个参数:"connectionString": "[parameters('SqlLinkedService_connectionString')]"
- 打开Git adf-publish分支里对应链接服务的ARM模板文件(路径一般是
配置Azure DevOps发布管道的ARM模板参数覆盖
- 在ADO发布管道的ARM模板部署任务里,找到模板参数设置区
- 添加参数
SqlLinkedService_connectionString,值填带参数表达式的完整连接字符串(敏感信息用ADO变量组里的保密变量) - 参数名称必须和ARM模板里定义的完全一致
调整DataFactory Git集成的发布设置
- 回到DevDataFactory的Git集成设置,检查发布配置里的参数处理规则
- 确认
Include all parameters in template选项是否开启,没开的话打开,然后重新发布到adf-publish分支 - 对于用表达式的连接字符串,要保证发布过程不会自动清空参数默认值
使用DataFactory的参数化模板功能
- 在Dev环境的链接服务里,把connectionString的表达式拆成独立的ARM模板顶级参数,别直接在链接服务内部嵌套参数
- 比如把serverName、databaseName作为ARM模板的顶级参数,然后在connectionString里引用:
"connectionString": "Server=tcp:@{parameters('serverName')},1433;Initial Catalog=@{parameters('databaseName')};...", - 这样发布时ARM模板会自动包含这些顶级参数,ADO部署时直接赋值就行
内容的提问来源于stack exchange,提问作者Dmitriy Ryabin
相关产品推荐
相关产品推荐

