无法在 Azure 部署中使用 bicepparam 文件

Sec*_*eep 5 azure azure-resource-manager azure-bicep

我尝试在 Azure CLI 部署中使用.bicepparam 参数文件,但收到错误unrecognized template parameter 'using './test.bicep'. 如果我使用传统的 ARM 参数 JSON 文件,我的部署确实可以工作。

这是我的语法问题还是错误?就好像 Azure CLI 不知道 bicepparam 文件一样。除了我为 Bicep 参数文件文档创建的 GitHub 问题111296中的一个人之外,我还没有看到其他人遇到此问题,因此很可能是我这边出现了一些语法问题。

下面是我的测试 Bicep 模板、Bicep 参数文件和我使用的命令。我正在 macOS 上尝试此操作,但在使用 Windows 11 时也遇到此问题。我希望此模板返回 JSON,显示组合值的输出为Hello World!'。这是附加信息。

  • macOS 文图拉 13.4.1
  • Azure CLI 2.49.0
  • Azure CLI 二头肌 0.18.4

测试二头肌

param value1 string
param value2 string

output combinedValue string = '${value1} ${value2}'
Run Code Online (Sandbox Code Playgroud)

测试.bicepparam

using './test.bicep'

param value1 = 'Hello'
param value2 = 'World!'
Run Code Online (Sandbox Code Playgroud)

命令(zsh)

% az deployment group create --name test --resource-group test-resouce-group --template-file test.bicep --parameters @test.bicepparam
unrecognized template parameter 'using './test.bicep'

param value1 '. Allowed parameters: value1, value2
Run Code Online (Sandbox Code Playgroud)

Sec*_*eep 6

[@Thomas 和 @GordonBy 在评论中回答了这个问题。]

@parameters.json使用 Azure CLI 部署 .bicepparam 文件时不使用该语法。相反,只需指定文件名,如下所示:

% az deployment group create --name test --resource-group test-resouce-group --template-file test.bicep --parameters test.bicepparam
Run Code Online (Sandbox Code Playgroud)

这与传统的 JSON ARM 参数文件不同,在传统的 JSON ARM 参数文件中,您在文件名之前使用符号。@根据下面 Thomas 的评论,@ 符号加载文件的内容,因此它实际上与在 CLI 上键入内联参数相同。由于这不是我们想要对 .bicepparam 文件执行的操作,因此我们不需要使用 @ 符号。