Я пытаюсь создать ссылку на KeyVault в разделе AppConfig веб-приложения Azure. Ссылка KeyVault ссылается на секрет, который существует в KeyVault, который является частью другой группы ресурсов и, следовательно, не существует в шаблоне.
в соответствии с документацией функции шаблона reference () вы должны иметь возможность ссылаться на ресурс, который не является частью шаблона, если вы предоставляете полный resourceId и apiVersion.
Но когда я использую это для ссылки на секрет, я получаю ошибку проверки, которая говорит: :
Ошибка: Code = InvalidTemplate; Сообщение = проверка шаблона развертывания завершилась неудачно: 'ресурс' Microsoft.KeyVault / vaults // secrets / 'не определен в шаблоне.
Я следовал этому руководству . как использовать ссылки KeyVault в шаблонах ARM.
Ниже приведен пример ситуации, которая не работает.
{
"type": "Microsoft.Web/sites",
"apiVersion": "2016-08-01",
"name": "[variables('webAppName')]",
"location": "[resourceGroup().location]",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('serverFarmName'))]",
"siteConfig": {
"alwaysOn": true,
"appSettings": [
{
"name": "<secretName>",
"value": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('secretResourceId')).secretUriWithVersion, ')')]"
},
]
}
},
"identity": {
"type": "SystemAssigned"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('serverFarmName'))]"
]
}
Переменная определяется следующим образом:
"variables": {
"secretResourceId": "[resourceId(subscription().subscriptionId, parameters('keyVaultResourceGroup'), 'Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), 'secretName')]"
},
Это что-то конкретное c для ссылок на секреты KeyVault?
Как только я попробую то же самое, но с ключом и секретом внутри шаблона, он будет работать отлично.