New-AzureRmResourceGroupDeployment:找不到与参数名称“_artifactsLocationSasToken”匹配的参数

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

我正在更改一个运行了几个月的 ARM 模板(包括链接模板)。构建成功后,部署时出现错误

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

我知道上传工件有时是一件有点敏感的事情,所以我查看了相应的帖子以获取提示 - among them this one that seemed helpful。但是没有任何效果,所以我休息了。

回来后我彻底检查了我的模板

  1. 在中等复杂 concat/parameter/variable 表达式中发现一个右括号过多(用 1 个字符宽的波浪线突出显示)
  2. 发现我在另一个地方错过了关闭大括号和方括号(在模板上应用“Format Document”之后)

因此我的看法是:不要依赖构建过程;不要被错误信息误导;出现这种错误时重新检查模板,甚至将其缩小以隔离无效区域

在我的例子中,错误是由无效的模板路径(参数 -TemplateFile)引起的。我在模板文件中定义了另一个参数,但由于部署命令无法找到模板本身,它也无法在模板中找到我的用户定义参数的值。

如果提供的参数为空,此错误似乎是 Powershell 调用的一般消息。 New-AzureRmResourceGroupDeployment 命令对参数执行一些验证会很好,比如检查模板文件是否存在以及模板文件的格式是否有效......这些通用的 PS 错误消息不是很有帮助。