Используйте ссылки Key Vault для службы приложений через шаблон ARM - PullRequest
0 голосов
/ 21 июня 2020

Я использую ссылки Key Vault для установки секретов из хранилища ключей в настройках приложения Службы приложений через шаблон ARM, как показано ниже:


{
  "variables": {
    "secretA": "secretA",
    "secretB": "secretB"
  },
  "resources": [
    {
      "apiVersion": "",
      "type": "Microsoft.Web/sites",
      "name": "",
      "location": "",
      "kind": "",
      "properties": {
        "serverFarmId": "",
        "clientAffinityEnabled": false,        
        "siteConfig": {},
        "httpsOnly": true        
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "resources": [
        {
            "apiVersion": "2018-02-01",
            "name": "appsettings",
            "type": "config",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('name'))]",
                "[resourceId('Microsoft.KeyVault/vaults/', parameters('keyVaultName'))]",
                "[resourceId('Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), variables('secretA'))]",
                "[resourceId('Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), variables('secretB'))]"
            ],
            "properties": {
                "secretA": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('secretA')).secretUriWithVersion, ')')]",
                "secretB": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('secretB')).secretUriWithVersion, ')')]"
            }
        }
      ]
    }
  ]
}

С помощью приведенного выше кода я вижу следующую ошибку:

## [error] InvalidTemplate: Ошибка проверки шаблона развертывания: «Ссылка на шаблон secretA недействительна: не удалось найти ресурс шаблона или копию ресурса с этим именем.»

1 Ответ

3 голосов
/ 21 июня 2020

если вы хотите сослаться на существующий ресурс, вам необходимо указать версию API:

reference(variables('secretA'), '2019-09-01').secretUriWithVersion

вы можете получить версии api со следующим:

( Get-AzResourceProvider -ProviderNamespace 'Microsoft.KeyVault' ).ResourceTypes | ft ResourceTypeName, ApiVersions 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...