New-AzureRmResourceGroupDeployment: не найден параметр, соответствующий имени параметра _artifactsLocationSasToken

Я менял шаблон ARM (включая связанные шаблоны), который работал месяцами. После успешной сборки при развертывании я получил ошибку

New-AzureRmResourceGroupDeployment : A parameter cannot be found that matches parameter name '_artifactsLocationSasToken'

2 ответа

Решение

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

Вернувшись, я тщательно проверил свой шаблон и

  1. обнаружил, что слишком много правой круглой скобки в средне-сложном выражении concat/parameter/variable (выделено волнистой линией шириной 1 символ)
  2. обнаружил, что я пропустил закрытие фигурных скобок и квадратных скобок в другом месте (после применения "Формат документа" на шаблоне)

Отсюда мое мнение: не полагайтесь на процесс сборки; не заблуждайтесь сообщением об ошибке; при возникновении такого рода ошибок перепроверьте шаблон, даже уменьшите его, чтобы изолировать недопустимые области

В моем случае ошибка была вызвана неверным путем к шаблону (параметр -TemplateFile). Я определил другой параметр в файле шаблона, но поскольку команда развертывания не смогла найти сам шаблон, она также не смогла найти значение для моего пользовательского параметра внутри шаблона.

Кажется, что эта ошибка является общим сообщением, вызываемым Powershell, если предоставленный параметр пуст. Было бы неплохо New-AzureRmResourceGroupDeployment Команда будет выполнять некоторую проверку параметров, например, проверять, существует ли файл шаблона и является ли формат файла шаблона действительным... Эти общие сообщения об ошибках PS не очень полезны.

Другие вопросы по тегам