使用 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。
我必须部署 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。