使用 ARM 模板部署多个资源

Deploy multiple resources using ARM Template

我必须部署 2 个资源并且我有一个 ARM 模板如下:

Template.json

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2018-05-01",
  "name": "Resource1",
  "properties": {
    "templateLink": {
      "uri": "Test.json"
    },
    "parameters": {
        "secretA": { "value": "" },
        "secretB": { "value": "" }
    }
  }
},
{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2018-05-01",
  "name": "Resource2",
  "properties": {
    "templateLink": {
      "uri": "Test.json"
    },
    "parameters": {
        "secretC": { "value": "" },
        "secretD": { "value": "" },
        "secretE": { "value": "" }
    }
  }
}

Test.json 看起来如下:

Test.json

  "resources": 
   {
      "apiVersion": "2018-02-01",
      "type": "Microsoft.Web/sites",
      "name": "",
      "properties": {        
        "appSettings": {  
            //set secrets in this section
        }        
    }
  

我需要在 Resource1 的 appSettings 中设置 (i) secretA、secretB (ii) Resource2 的 appsettings 中的 secretC、secretD、secretE。

如何更新上述 ARM 模板以在 appSettings 中使用正确的机密部署 Resource1 和 Resource2?

例如:

Resource1 appSettings 应如下所示:

"appSettings": {
    {
      "name": "secretA",
      "value": ""
    },
    {
      "name": "secretB",
      "value": ""
    }
}

Resource2 appSettings 应如下所示:

"appSettings": {
    {
      "name": "secretC",
      "value": ""
    },
    {
      "name": "secretD",
      "value": ""
    },
    {
      "name": "secretE",
      "value": ""
    }
}

您可以添加数组参数。例如

resource1参数如下

"parameters": {
    "secretSettings": {
        "value": [
            {
                "name": "secretA",
                "value": "",
                "slotSetting": false
            },
            {
                "name": "secretB",
                "value": "",
                "slotSetting": false
            }
        ]
    }
}

resource2参数如下

"parameters": {
    "secretSettings": {
        "value": [
            {
                "name": "secretC",
                "value": "",
                "slotSetting": false
            },
            {
                "name": "secretD",
                "value": "",
                "slotSetting": false
            }
        ]
    }
}

然后可以参考资源模板中的参数。

"appSettings": "[parameters('secretSettings')]"

Please help me understand - what do you mean by set all the appSettings each time you deploy test.json?

这意味着新的appSettings将覆盖现有的appSettings,您应该在每次部署时在参数中添加您需要的所有appSettings。