Synapse跨环境部署时SQL linked service部署异常问题咨询
解决方案
你遇到的问题确实和secureString类型参数的传递逻辑相关,不是参数定义本身的问题,按以下步骤修正即可:
- 修正流水线部署任务的参数覆盖格式
你当前的任务配置里OverrideArmParameters字段缺少闭合标识,参数赋值格式也不符合ARM部署要求,修正后的配置如下:
- task: Synapse workspace deployment@1 displayName: 'Synpase deployment task for workspace: syn$(name)$(environment)' inputs: TemplateFile: '$(System.DefaultWorkingDirectory)/$(cicd_synapse_workspace_origin)/TemplateForWorkspace.json' ParametersFile: '$(System.DefaultWorkingDirectory)/$(cicd_synapse_workspace_origin)/TemplateParametersForWorkspace.json' AzureSubscription: '${{ parameters.sercon }}' ResourceGroupName: 'rg-$(name)-$(environment)' TargetWorkspaceName: syn$(name)$(environment) OverrideArmParameters: '-ls_sq_mark_connectionString $(Connectionstring)'
- 将DevOps库中的
Connectionstring变量设为机密变量
ARM模板中secureString类型的参数只能接收DevOps标记为「机密」的变量值,普通明文变量传递过去会被识别为无效值,最终导致链接服务使用默认配置生成,出现开发和测试环境配置不一致的问题。你可以在DevOps变量库中找到该变量,勾选「保密」选项即可。 - 部署后验证
部署完成后到测试环境Synapse工作区的链接服务页面点击测试连接即可,secureString类型的连接串部署后不会明文展示,属于正常情况,不需要手动补充内容。
你当前TemplateForWorkspace.json中的参数定义是符合要求的,不需要修改。
内容的提问来源于stack exchange,提问作者MarkDeGroot
相关产品推荐
相关产品推荐

