msDeploy 包 uri 的 Arm 模板中的条件语句

Coditional statement in Arm template for msDeploy packageuri

我的目标是使用 msDeploy 部署一个打包的 .zip 文件,如果满足条件则再部署一个。当前模板如下所示:

"resources": [
    {
      "name": "MSDeploy",
      "type": "Extensions",
      "apiVersion": "2015-02-01",
      "dependsOn": [
        "[resourceId('Microsoft.Web/Sites', variables('functionAppName'))]"
      ],
      "properties": {
        "addOnPackages": [
        {
           "packageUri": "[parameters('zipUri')]"
        },

        {
           "packageUri": "[if(parameters('boolparam'), parameters('zipUri2'), '')]"
        }
        ]
      }
    }
  ]

如果 boolparam 为真,则此操作有效,但如果为假,则失败。是否可以始终部署有条件的 zipUri 和 zipUri2?

你可以尝试这样做:

"variables": {
    "package1": [
        {
            "packageUri": "[parameters('zipUri')]"
        }
    ]
    "package2": [
        {
            "packageUri": "[parameters('zipUri2')]"
        }
    ]
}

然后在您的 msdeploy 定义中:

"properties": {
    "addOnPackages": "[if(parameters('boolparam'), concat(variables('package1'), variables('pakcage2')), variables('package1'))]"