ARM模板允许您使用“ templateLink”属性引用另一个“链接的” ARM模板。我想使用Azure DevOps(VSTS)中的原始git uri做到这一点。我可以使用github来做到这一点,如下所示:
"resources": [
{
"apiVersion": "2017-05-10",
"name": "linkedTemplate",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "incremental",
"templateLink": {
"uri": "https://raw.githubusercontent.com/lw/BaseARMTemplates/master/ARM.json"",
"contentVersion": "1.0.0.0"
},
}
}
]
答案 0 :(得分:2)
最佳做法是使用带有sas令牌的存储帐户来检索模板。这样您就可以安全地引用模板(https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-powershell-sas-token)。
如果您可以在url中传递auth(仅获取请求),则可以使用任何安全存储。或者,您可以创建一个Azure函数,将您的请求代理到私有存储并检索模板(显然是黑客)。
答案 1 :(得分:1)
如果您的项目是私人项目,则不能。您可以将其上传到公共存储帐户(或具有SAS令牌的私有存储帐户),然后从那里引用。
似乎也没有公共项目的API。
答案 2 :(得分:1)
您可以创建一个管道,该管道首先将Arm模板推送到私有存储帐户,然后创建一个步骤以创建SAS令牌,然后将SAS令牌传递给ARM模板。这是MS推荐的最佳实践,但感觉像是黑客,我不太喜欢它,所以我最终创建了单独的发布管道任务和模板,而不是使用嵌套模板。如果需要将值从模板传递到另一个,则可以使用ARM模板输出来实现。