我们有不同的 ADF 环境,例如 TST、UAT 和 prod。在每个环境中,自托管 IR 名称都不同。 是否可以在 ADF ARM 模板中参数化集成运行时,以便当 ARM 模板通过 CI/CD 部署时,我们可以在部署期间在 DevOps 变量组中传递 IR 名称。
我已尝试使用以下设置更改 ADF 中的参数化模板,但 IR 名称在 ARM 模板参数 JSON 'arm_template_parameters.json' 中仍然不可用。
答案 0 :(得分:2)
嘿@Aneesh 和@Leon Yu, 美好的一天!
实际上可以在arm模板中参数化IR名称并基于Azure Devops进行部署:) 为此,您必须在 ARM 模板和从 ADF 门户中提取的模板参数中明确创建一个新参数。
如下所示,直到 ARM 模板导出后自动创建 SQL Server1_properties。 我们手动新建了一个参数IRName_properties_typeProperties_parametervalue"
然后在模板本身中,用参数替换所有 IR 名称值:
注意:您还需要在参数模板中添加新手动创建的参数。
然后在 Azure Devops Release 管道中,您可以使用 Devops 变量覆盖参数
答案 1 :(得分:1)
在我搜索时,我发现它接缝无法参数化 ADF ARM 模板中的集成运行时。
其他人发布了几乎相同的问题,Microsoft 工程师提供了一些可能有用的解决方法。他还说:
您可以参考这个问题:ARM Template Custom Parameters for (self-hosted)Integration Runtime。
答案 2 :(得分:0)
是的,您可以参数化 IR 运行时。但它是内在的。
您可以为要使用的 IR 指定别名,并在 DEV/UAT 和 PROD 上使用相同的别名。
然后,该别名将显示在您的 ARM 模板中,向集成运行时请求资源 ID 以供使用。
为了更清楚,让我们假设您有 3 个不同的 ADF 帐户:
有人设置了一个自托管的 IR,它的资源 ID 是这样的: /subscriptions/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourcegroups/some-resource-group/providers/Microsoft.DataFactory/factories/SHARED_ADF/integrationruntimes/SOMESELFHOSTEDIR
因此,在 ADF-DEV 中,您将拥有这样的 IR:
{
"name": "SELFHOSTEDGW",
"properties": {
"type": "SelfHosted",
"typeProperties": {
"linkedInfo": {
"resourceId": "/subscriptions/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourcegroups/some-resource-group/providers/Microsoft.DataFactory/factories/SHARED_ADF/integrationruntimes/SOMESELFHOSTEDIR",
"authorizationType": "Rbac"
}
}
}
}
在这里您可以看到 IR 的自定义别名为 SELFHOSTEDGW。 只需将您链接的服务指向此别名,在 Devops 上只需为此 SELFHOSTEDGW 别名指定不同的资源 ID。