在ARM模板中有条件地部署资源

时间:2017-02-23 19:16:55

标签: azure azure-resource-manager

我想为预生产和生产环境使用相同的ARM模板,但是,生产需要很少的额外资源来部署。我理解“条件”模板部署,如下面的示例适用于“资源A或B”,但不适用于“A或无”。如果是这种情况,是否有在ARM中部署/不部署资源的解决方法?

"vnetHash": {
  "new": "[concat(parameters('templateBaseUrl'),'partials/vnet-new.json')]",
  "existing": "[concat(parameters('templateBaseUrl'),'partials/vnet-existing.json')]"
}

1 个答案:

答案 0 :(得分:0)

不,你不能明确地做到这一点,但是你可以使用2个不同的模板,就像上面的例子一样,所以如果你想部署一个资源或者什么都没有,你可以使用模板A来部署有意义的东西,将模板B用于没有任何部署。

模板无效的示例:

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