Шаблон ARM превращает массив строк в массив объектов - PullRequest
1 голос
/ 03 июля 2019

Не уверен, что эта функция существует. Я пытаюсь преобразовать список IP-адресов, разделенных запятыми, из параметров сборки Azure DevOps в массив объектов. Пока что он разбивает список, разделенный запятыми, на массив строк, но шаблону необходим массив объектов.

Значение параметра - это список IP-адресов, разделенных запятыми. например " 192.168.0.1,192.168.0.2 / 32,127.0.0.1 "

Шаблон ARM будет выглядеть так:

"variables": {
  "ipaddresses": "[split(parameters('ipaddresses'), ',')]"
},
"resources": [
  ...
    "ipRestrictions": "[stringArrToObjArr(variables('ipaddresses'))]" <--
  ...
]

И в идеале функция со стрелкой выше даст значение для ipRestictions, которое будет примерно таким:

[
  {
    "ipAddress": "192.168.0.1"
  },
  {
    "ipAddress": "192.168.0.2/32"
  },
  {
    "ipAddress": "127.0.0.1"
  },
]

1 Ответ

2 голосов
/ 04 июля 2019

Вы можете использовать функцию copy(), чтобы сделать это:

"variables": {
  "ipaddresses": "[split(parameters('ipaddresses'), ',')]"
  "copy": [
    {
      "name": "myVariable",
      "count": "[length(variables('ipaddresses'))]",
      "input": {
        "ipAddress": "[variables('ipaddresses')[copyIndex('myVariable')]]"
      }
    }
  ]
},

это вернет желаемый объект в переменную с именем myVariable. если вы хотите переименовать его >> не забудьте также переименовать его внутри copyIndex()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...