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

Conditional deployment of a resource in ARM templates

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

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

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

什么都不做的模板示例:

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