Развертывание нескольких ресурсов с помощью шаблона ARM - PullRequest
1 голос
/ 21 июня 2020

Мне нужно развернуть 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
        }        
    }
  

Мне нужно установить ( i) secretA, secretB в appSettings для Resource1 (ii) secret C, secretD, secretE в appsettings для Resource2.

Как мне обновить указанные выше шаблоны ARM для развертывания Resource1 и Resource2 с правильными секретами в appSettings ?

например:

Resource1 appSettings должен выглядеть следующим образом:

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

Resource2 appSettings должен выглядеть так:

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

1 Ответ

1 голос
/ 23 июня 2020

Вы можете добавить параметр массива. Например,

параметры для ресурса1, как показано ниже

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

параметры для ресурса2, как показано ниже

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

Затем вы можете ссылаться на параметр в шаблоне ресурса.

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

Пожалуйста, помогите мне понять - что вы имеете в виду под установкой всех appSettings при каждом развертывании теста. json?

Это означает, что новые appSettings будут переопределить существующие appSettings, вы должны добавлять все appSettings, которые вам нужны, в параметр каждый раз при развертывании.

...