Переопределить среду функций Azure в службе Azure Kubernetes

Я хочу задать вопрос. У меня есть код функции Azure в Net8 (изолированный), затем я отправляю его в образ Docker в реестре контейнеров Azure, а затем развертываю его в службе Azure Kubernetes.

Вопрос в том, как я могу переопределить среду функций Azure? Я пробовал поместить его в Config Maps, Secrets и в свойство Env в Yaml развертывания, но он все равно читает мой appsettings.json, а не мой appsettings.Development.json.

Я хочу, чтобы после публикации функции Azure могли читать конфигурацию из appsettings.Development.json.

Для локального варианта я могу переопределить его в файле settings.json запуска, добавив свойство EnvironmentVariables, но как я могу сделать это также при публикации в Azure Kubernetes?

Спасибо

Я всегда рекомендую следовать рекомендациям Microsoft. Это должно дать вам примерное представление о том, что делать: Learn.microsoft.com/en-us/azure/azure-app-configuration/…

Aaron 18.06.2024 07:44

Спасибо за ответ, но я не понял, карты конфига уже пробовал. Также я хочу добавить, что я пытаюсь развернуть его из App Host, а также я все еще изучаю Docker и Kubernetes, поэтому мне нужно более подробное объяснение, что делать, потому что у меня мало знаний об этом.

Raymond Kenny 18.06.2024 07:55

Можете ли вы попробовать добавить переменную среды AzureFunctionsJobHost__environment в YAML-файл развертывания и установить для нее значение Development. Это должно позволить среде выполнения Функций Azure использовать файл конфигурации appsettings.Development.json вместо appsettings.json. также поделитесь своей конфигурацией yaml и docker

Arko 18.06.2024 08:10

Я попробовал AzureFunctionJobHost__environment, но он все еще не читается из appsettings.Development.json, для докера я публикую его в контейнере Azure непосредственно из Visual Studio, это yaml развертывания:

Raymond Kenny 18.06.2024 08:35
spec: replicas: 1 strategy: type: Recreate template: metadata: labels: app: testfunc spec: containers: - name: testfunc image: testfunc.azurecr.io/testfunction:20240613081713 imagePullPolicy: Always env: - name: AzureFunctionsJobHost__environment value: "Development" envFrom: - secretRef: name: testfunc - configMapRef: name: testfunc-env
Raymond Kenny 18.06.2024 08:35

Проблема решена, я забыл удалить CopyToPublishDirectory для моего appsettings.Development.json, поэтому он всегда читает appsettings.json.

Raymond Kenny 18.06.2024 11:50

ааа! Понимаю, приятно знать, что проблема решена.

Arko 18.06.2024 11:58

@RaymondKenny Приятно слышать, что вы смогли решить свою проблему. Не могли бы вы задокументировать свое решение в ответе? Это внесет ясность для тех, кто сталкивается с аналогичными техническими проблемами в сообществе.

Naveen Sharma 21.06.2024 15:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Опубликуйте это как ответ, чтобы помочь сообществу SO, столкнувшемуся с подобной проблемой. Как правильно понял Рэймонд, чтобы гарантировать, что приложение «Функции Azure» в контейнере Docker читает правильный appsettings.Development.json файл при развертывании в AKS, необходимо проверить параметры CopyToPublishDirectory в файлах конфигурации. Файл appsettings.Development.json не следует копировать в каталог публикации файла проекта (.csproj). Следует копировать только appsettings.json, а настройками, специфичными для среды, следует управлять с помощью переменных среды.

<ItemGroup>
  <None Update = "appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
  <None Update = "appsettings.Development.json">
    <CopyToOutputDirectory>Never</CopyToOutputDirectory>
  </None>
</ItemGroup>

Спасибо, Рэймонд за ваш положительный вклад, который сыграл важную роль в решении этой проблемы. Не стесняйтесь редактировать ответ, добавляя сюда все, что я пропустил.

Другие вопросы по теме