【发布时间】:2021-03-17 00:39:49
【问题描述】:
我是使用 Azure 数据工厂 v2 的新手,并且在部署到多个环境时对一般转换连接字符串/LinkedServices 有一些疑问。
来自 SSIS 背景:
我们曾经将连接字符串定义为项目参数。这允许在将工件部署到不同环境时转换连接字符串。
如何使用 Azure 数据工厂 v2 完成相同的任务? 是否有捷径可寻 ?
我试图使用连接字符串作为参数设置链接服务,然后可以与触发器一起传递?这可行吗?
【问题讨论】:
我是使用 Azure 数据工厂 v2 的新手,并且在部署到多个环境时对一般转换连接字符串/LinkedServices 有一些疑问。
我们曾经将连接字符串定义为项目参数。这允许在将工件部署到不同环境时转换连接字符串。
如何使用 Azure 数据工厂 v2 完成相同的任务? 是否有捷径可寻 ?
我试图使用连接字符串作为参数设置链接服务,然后可以与触发器一起传递?这可行吗?
【问题讨论】:
现在可以从下面的 URL 获得此功能。您是请求该功能的人吗? :)
【讨论】:
与SSIS 相关(我们将使用配置文件 - .dtsconfig 用于部署到不同的部署),对于ADFV2(以及ADFV1),我们可以研究使用ARM 模板的选项,其中对于每个不同的环境(开发、测试和产品)部署ADF 解决方案,可以制作许多部署文件(.json)并使用PowerShell 编写部署脚本。可以使用 ARM 模板参数来参数化与链接服务和其他环境特定值的连接。然后有ADFV2 特定的PowerShell cmdlets 用于创建/部署ADFV2 管道。
您还可以使用PowerShell 参数化与linked services 和其他环境特定值的连接。
使用ADFV2 UI 可以进行VSTS GIT 集成,部署和集成也是如此。 VSTS GIT 集成允许选择功能/开发分支或在 VSTS GIT 存储库中创建新分支。一旦更改与主分支合并,就可以使用ADFV2 UI 将其发布到数据工厂。
【讨论】:
我最终解决了这个问题,为每个环境设置了一个 azure key vault,每个环境都有一个连接字符串秘密(更多细节在这里:https://docs.microsoft.com/en-us/azure/data-factory/store-credentials-in-key-vault)
- dev
- dev-azure-datafactory
- dev-key-vault
- key: db-conn-string
value: dev-db.windows.net
- qa
- qa-azure-datafactory
- qa-key-vault
- key: db-conn-string
value: qa-db.windows.net
- production
- prod-azure-datafactory
- prod-key-vault
- key: db-conn-string
value: prod-db.windows.net
在 Azure 数据工厂中
定义 Azure Key Vault 链接服务
在为其他链接服务定义连接字符串时使用 azure key vault 链接服务
这种方法消除了实际链接服务中参数的任何变化
与 azure key vault 链接服务的连接字符串可以作为 azure 管道部署的一部分进行更改(更多详细信息:https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment)
每个 azure 数据工厂都可以使用 MSI 访问其 azure key vault(在我们的例子中使用 terraform 自动化)
【讨论】: