6

テンプレートの他の場所で使用されているストレージ アカウントから接続文字列を作成しようとしていますが、

"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"
             },

ARMから見つけたもの- テンプレートの後半で AppSettings で使用するストレージ アカウントからアクセス キーを取得するにはどうすればよいですか? ただし、その質問の構文は機能していないようです。key1既知のプロパティではないエラーが発生します。と呼ばれるプロパティkeysがあるようですが、それは予想通り、ある種の構造体です。その構造から、主キーのプロパティが何であるかを理解できませんでした。私はもう試した

  • key1 -> テンプレート言語式プロパティ 'key1' が存在しません。使用可能なプロパティは 'keys' です
  • キー -> テンプレート言語関数 'concat' に指定されたパラメーターが無効です。すべてのパラメーターを配列にするか、パラメーターをまったく配列にする必要はありません。
  • keys.key1
  • keys.primaryKey
  • キー[0]

そのすべてが失敗しました。ファイルの最後にを入れてみoutputましたが、キーを出力しても値が出力されないようです。

4

2 に答える 2

10

結局のところ、listKeys から返されるオブジェクトの構造は、次のようなキーの配列です。

[
  { "keyName":"key1", "permissions":"Full", "value":"keyvalue1"},
  { "keyName":"key2", "permissions":"Full", "value":"keyvalue2"}
]

したがって、値を取得するための正しい解決策は、行うことでしたkeys[0].value

于 2016-03-14T04:34:18.880 に答える
1

listKeys() 関数を使用する必要があります

https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/#listkeys

于 2016-03-13T22:34:45.027 に答える