Azure ARM - встроенный условный оператор - PullRequest
0 голосов
/ 10 декабря 2018

Мне интересно, возможно ли выполнить встроенную условную инструкцию в моем шаблоне ARM Azure.Короче говоря, я хочу назначить общедоступный IP-адрес сетевой карте, если для данного параметра установлено значение «Да»

        {
          "apiVersion": "2015-06-15",
          "type": "Microsoft.Network/networkInterfaces",
          "name": "my-network-interface",
          "location": "[resourceGroup().location]",
          "properties": {
            "ipConfigurations": [
              {
                "name": "ipconfig1",
                "properties": {
                  "privateIPAllocationMethod": "Static",
                  "subnet": {
                    "id": "my-subnet-name"
                  },
                  "privateIpAddress": "10.0.0.5",
                  IF ASSIGN PUBLIC IP THEN,
                       "publicIpAddress": "id": "[resourceId('Microsoft.Network/publicIPAddresses', 'my-public-ip)]"
                }
              }
            ]
          }
        },

1 Ответ

0 голосов
/ 10 декабря 2018

вам придется использовать функции union() и if() для достижения этой цели.создайте эти переменные:

"external": {
    "publicIPAddress": {
        "id": "my_ip_id"
    }
},
"internal": {
    "privateIPAddress": "10.0.0.5",
    "privateIPAllocationMethod": "Static",
    "subnet": {
        "id": "my_subnet_id"
    }
},

и затем сделайте что-то вроде этого:

"ipConfigurations": [
    {
        "name": "ipconfig1",
        "properties": "[if(equals(parameters('something'), 'yes'), union(variables('external'), variables('external')), variables('internal'))]"
    }
]

альтернатива (если вас не волнует дублирование кода), вы можете создать 2 разных развертывания с немного другим кодом,один развернет условие 1, другой развернет условие 2. в качестве бонуса этот подход легче понять, но сложнее поддерживать.

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