无法从ARM模板中的存储资源获取Azure存储密钥

sti*_*mms 5 azure azure-storage azure-resource-manager azure-storage-account azure-rm-template

我正在尝试从模板中其他位置使用的存储帐户构建连接字符串

"StorageConnectionString": {
               "value": "[concat('DefaultEndpointsProtocol=https;AccountName=',
 variables('storageName'),';AccountKey=',
 listKeys(resourceId('Microsoft.Storage/storageAccounts',
 variables('storageName')), providers('Microsoft.Storage',
 'storageAccounts').apiVersions[0]).key1)]",
              "type": "Custom"
             },
Run Code Online (Sandbox Code Playgroud)

我从ARM中找到的- 如何从存储帐户中获取访问密钥以便稍后在模板中的AppSettings中使用?但是该问题的语法似乎不再起作用.我得到的错误key1不是已知的属性.显然有一个被称为属性,keys但正如人们所预料的那样,这是一种某种结构.我一直无法弄清楚主键的属性来自该结构.我试过了

  • key1 - >模板语言表达式属性'key1'不存在,可用属性是'键
  • keys - >模板语言函数'concat'提供的参数无效.全部或全部参数都不必是数组.
  • keys.key1
  • keys.primaryKey
  • 键[0]

所有这些都失败了.我尝试output在文件的末尾添加一个但输出键似乎没有输出任何值.

sti*_*mms 8

事实证明,从listKeys返回的对象的结构是一个看起来像的键数组

[{ "的keyName": "KEY1", "权限": "满", "值": "keyvalue1"},{ "的keyName": "KEY2", "权限": "满", "值":"keyvalue2 "}]

因此,获得价值的正确解决方案就是这样做keys[0].value.