Переменные среды
Первоначальный вопрос касался переменных среды, поэтому эта часть посвящена использованию env vars.
В статьях описывается, как записать эти секреты в переменные среды.Чтобы использовать их в своем приложении, вам нужно прочитать переменные среды.Это прекрасно поддерживается конфигурацией ядра asp.net:
Учитывая, что у вас есть следующий конфиг (из https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables#secure-values):
apiVersion: 2018-10-01
location: eastus
name: securetest
properties:
containers:
- name: mycontainer
properties:
environmentVariables:
- name: 'NOTSECRET'
value: 'my-exposed-value'
- name: 'SECRET'
secureValue: 'my-secret-value'
и настройка по умолчанию, как описано здесь в документации: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables#secure-values
Пример приложения 2.x использует статический удобный метод CreateDefaultBuilder для построения хоста, который включает в себя вызов AddEnvironmentVariables.
Вы можете прочитать свой секретвот так
var secret = config.GetValue<string>("SECRET", '');
Как описано здесь: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2#getvalue
Секретные тома
Секретные тома будут содержать один файл на секретное значение.
Учитываяпример из https://docs.microsoft.com/bs-latn-ba/azure///container-instances/container-instances-volume-secret#mount-secret-volume---yaml
volumes:
- name: secretvolume1
secret:
mysecret1: TXkgZmlyc3Qgc2VjcmV0IEZPTwo=
mysecret2: TXkgc2Vjb25kIHNlY3JldCBCQVIK
У вас будет каталог с файлами «mysecret1» и «mysecret2».
Вы можете добавить эти значения, используя конфигурацию ключа для файлаПоставщик
config.AddKeyPerFile(directoryPath: path, optional: true);
, как описано здесь: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2#key-per-file-configuration-provider
После того, как вы добавили «источники конфигурации», вы можете получить доступ к таким значениям, как
var secret = config.GetValue<string>("mysecret1", '');