1

我正在考虑定义 API 版本号,看起来我在所有链接模板中引用的某些模板中不断重复,但看起来我这样做有困难,我不确定这是否应该是可能的,更不用说如何去做吧。

例如, intazuredeploy-shared.json我可以做类似的事情

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "variables": {
    "apiVersion": {
        "resources": { "deployments": "2015-01-01" }
    }
  }
}

然后azuredeploy.json我可以像这样使用它

resources": [
{
    "name": "someResource",
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "[variables('apiVersion').resources.deployments]",

第一个绊脚石是需要有一个resources部分。这让我想知道我是否引用了错误的架构,或者是否应该引用一个架构。如果我创建了一些我认为是虚拟资源的东西并提供了这个想法,那么应该如何azuredeploy.json引用这个文件?

我可以做类似的事情,"[concat(parameters('_artifactsLocation'), '/ProjectName/Templates/azuredeploy-shared-json', parameters('_artifactsLocationSasToken'))]"但我不知道它在哪里或如何以及应该仍然有效。因此,工作指针在这方面表示赞赏。我确实看到了How to pass variables between templates - ARM json,但不幸的是我不明白它应该如何工作,也没有链接的 Azure 示例。

4

1 回答 1

2

好的,我认为你可以使用部署输出来做到这一点......似乎可能有一个更简单的解决方案,但我想不出一个就我对你的场景的理解而言。

1)部署包含所有常量的模板并将这些常量设置为该部署的输出

2)在要访问它们的模板部署中,使用参考功能,例如

reference('/subscriptions/{GUID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}','2015-01-01').outputs.{nameOfConstant}.value]"

只需使用相同的部署名称再次部署步骤 #1 即可更新常量。这就是你所追求的吗?

于 2016-04-07T18:59:03.503 回答