Я пытаюсь построить строку подключения из учетной записи хранилища, используемого в другом месте в шаблоне, и яНевозможно получить Azure ключ хранения из ресурса хранения в шаблоне ARM
"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 - How can I get the access key from a storage account to use in AppSettings later in the template? однако синтаксис в этом вопросе больше не работает. Я получаю сообщение об ошибке key1
не является собственностью, которая известна. По-видимому, есть свойство, называемое keys
, но это, как можно было ожидать, некоторая структура. Я не мог понять, что свойство первичного ключа принадлежит этой структуре. Я попытался
- key1 -> Язык шаблона выражение свойство «key1» не существует, доступные свойства «ключи
- ключи -> Предоставленные параметры для языка шаблона функции„CONCAT“являются недействительными. Любой или любой из параметров должен быть массивом.
- keys.key1
- keys.primaryKey
- клавиши [0]
Все это не удалось. Я попытался положить output
в конце файла, но вывод ключей просто не выводит значения.
Я использовал listKeys, но, похоже, не существует какой-либо документации о том, что возвращается им при использовании с azure storage. Кажется, что это какая-то структура, но я не знаю, что и как получить текстовое представление ключа для использования в concat. – stimms
Возвращает строку с кодировкой base64, которая представляет основной (или вторичный) ключ хранения для учетной записи. Если вы посмотрите на этот шаблон: https://github.com/rjmax/ArmExamples/blob/master/listKeysSample.json и разверните его, вы увидите его. Будет выглядеть примерно так: 3mI6Qg6 + TtZ3 + aDp/AWlft78UuW7MLFOdR6pcpYHBj0/IQMWNRJU55QPB5bmNgVIIs7V79bNTrnlywujsTXqsw == –