Я создаю правила DNAT брандмауэра Azure как часть конвейера Azure Devops. Я не хочу указывать публичный IP-адрес вручную, я хочу получить это значение из свойств публичного имени. Таким образом, если мы клонируем конвейер или перестраиваем, нам не нужно обновлять IP-адрес.
Это просто выдержка из шаблона ARM. Этот первый пример работает.
"destinationAddresses": [
"52.180.91.89"
]
Моя попытка заменить его приведена ниже. Обратите внимание, что публичный IP-адрес создается в шаблоне ARM, поэтому я не ссылаюсь на полный путь к ресурсу.
"destinationAddresses": "[reference(variables('arm_firewall_buildagentip')).ipAddress]"
Ошибка, которую я получаю, ниже. Он возвращает правильное значение, но я не уверен, как его отформатировать, чтобы его можно было принять в правиле брандмауэра.
##[error]BadRequest: {
"error": {
"code": "InvalidRequestFormat",
"message": "Cannot parse the request.",
"details": [
{
"code": "InvalidJson",
"message": "Error converting value \"52.180.91.89\" to type 'System.Collections.Generic.List`1[System.String]'. Path 'properties.natRuleCollections[0].properties.rules[1].destinationAddresses', line 1, position 2880."
}
]
}
} undefined