Я работаю с функциями Azure и использую индивидуальный подход к настройке, не полагаясь на appsettings.json. Вместо этого я использую папку с именем «config» для хранения настроек, специфичных для среды.
Моя текущая настройка включает в себя:
Program.cs файл, который использует HostBuilder для настройки приложения.
Папка конфигурации, содержащая файлы без расширений, где каждый файл представляет переменную среды.
Один из таких файлов называется «azure-bus-connection» и содержит секретный ключ. значение.
Вот мой код Program.cs фрагмент:
var host = new HostBuilder()
.ConfigureAppConfiguration((context, builder) =>
{
var configFolder = Path.Combine(AppContext.BaseDirectory, "config");
context.Configuration = builder.AddDirectory(configFolder).Build();
})
// ... rest of the configuration code ...
Моя функция использует эту конфигурацию для настройки подключения к служебной шине:
[Function(nameof(MyWorker))]
public async Task MyWorker(
[ServiceBusTrigger("topic", nameof(MyRequest), Connection = "azure-bus-connection")]
ServiceBusReceivedMessage message)
{
var connectionString = configuration["azure-bus-connection"];
// ... rest of the function code ...
}
У меня возникли проблемы с управлением переменными среды в этой настройке, поскольку моя функция не распознает секрет, добавленный с помощью AddDirectory. Как я могу гарантировать, что конфиденциальная информация, такая как строка подключения служебной шины Azure, хранится в безопасности и не отображается в моем коде или журналах, но ?
Существует ли рекомендуемый способ управления секретами в функциях Azure без использования appsettings.json/local.settings.json или хранения секретов непосредственно в коде?
Дополнительный контекст
Я использую пакет Microsoft.Azure.Functions.Worker.
Я настроил телеметрию Application Insights.
Я использую специальное промежуточное программное обеспечение для глобальной обработки исключений.
Я настроил параметры ведения журнала для удаления правил ведения журнала Application Insights по умолчанию.
Любой совет. или передовые методы безопасного управления секретами в функциях Azure с настраиваемой конфигурацией будут очень признательны.
Дополнение к секретам в моем файле yaml развертывания AKS выглядит следующим образом:
template:
metadata:
labels:
app: ${PROJECT_SLUG}
aadpodidbinding: ${PROJECT_SLUG}
spec:
containers:
- name: ${PROJECT_SLUG}
image: ${PROJECT_IMAGE}
imagePullPolicy: Always
volumeMounts:
- name: secrets-store-inline
mountPath: "/config"
readOnly: true
ports:
- containerPort: 443
- containerPort: 80
envFrom:
- configMapRef:
name: ${PROJECT_SLUG}-config
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "${PROJECT_SLUG}"
Подробнее здесь: https://stackoverflow.com/questions/791 ... l-settings
Управление конфигурацией функций Azure без appsettings.json/local.settings.json ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Управление конфигурацией функций Azure без appsettings.json/local.settings.json
Anonymous » » в форуме C# - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Управление конфигурацией функций Azure без appsettings.json/local.settings.json
Anonymous » » в форуме C# - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Невозможно найти значение в local.settings.json во внутрипроцессной функции Azure.
Anonymous » » в форуме C# - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-