Конвейеры DevOps - сопоставление переменных среды из Azure KeyVault - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь заставить мое приложение .NET Core получать секретные значения из Azure KeyVault в конвейере DevOps.Я хочу отобразить их на переменные среды, которые можно использовать для переопределения настроек в файле appsettings.json.

Я сопоставил группу переменных в конвейере DevOps с KeyVault и настроил соответствующие переменные для конвейера.,Я добавил несколько задач для записи переменных в выходные переменные.

Я пытаюсь установить вложенное значение в файле JSON, и, кажется, существует некоторая путаница в отношении того, какой разделитель использовать: "-", "__" или "."

В yml у меня есть это, чтобы загрузить переменные из KV:

- task: AzureKeyVault@1
  displayName: 'Load Secrets'
  inputs:
    azureSubscription: MySub
    KeyVaultName: 'A-Vault'

И затем я пытаюсь отобразить переменные в выходные переменные следующим образом:

- powershell: echo "##vso[task.setvariable variable=ConnectionStrings.DbConnectionString;isOutput=true]$(ConnectionStrings--DbConnectionString)"
  displayName: 'Set DbConnectionString' 

Переменная окружения использует формат "-", используемый Azure KeyVault, и я пытаюсь сопоставить ее с переменной, используя "."формат, используемый в расширениях конфигурации .NET Core.Я также попытался использовать «__» в имени выходной переменной, но тот же результат.

Я добавил метод расширения конфигурации AddEnvironmentVariables () при запуске, и файл настроек JSON выглядит следующим образом:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ConnectionStrings": {
    "DbConnectionString": "env:ConnectionStrings__DbConnectionString"
  }
}

Ошибка при запуске теста показывает, что он использует значение по умолчанию из JSON выше, а не значение из переменной среды.Есть идеи, что я мог упустить, или есть лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...