У меня есть веб-API в .NET 6, который использует стандарт IConfiguration для получения значений конфигурации/настроек из appsettings.json и развертывается в Службе приложений Azure (Windows).
Я развертываю его с помощью Visual Studio и вижу, что код обновляется в Службе приложений. Однако мои изменения в appsettings.json не отразились на вкладке «Настройки приложения» на странице «Переменные среды» (в разделе «Настройки»). Обратите внимание, что внутренняя служба приложений appsettings.json была обновлена (я проверил это с помощью Kudu).
Я не знаю, как предыдущий разработчик создал эти переменные среды (по одной для каждого значения в appsettings.json).
appsettings.json и создания соответствующих переменных среды?appsettings.json, щелкнув его правой кнопкой мыши в обозревателе решений Visual Studio, а затем щелкнув пункт меню Publishing appsettings.json, но это, похоже, не сработало. Я неправильно использую этот пункт меню?appsettings.json. Я знаю, что для некоторых настроек (например, конфиденциальных значений, таких как токены/ключи API) это может быть способом избежать хранения этих значений на диске, но в этом проекте каждая настройка дублируется. Это обычное/стандартное действие? Обычно я просто копирую/развертываю все appsettings.<env name>.json для каждой среды и просто устанавливаю переменную ASPNETCORE_ENVIRONMENT в соответствии с <env name>.Ответы на любые/все вопросы выше будут оценены по достоинству, я прочитал несколько страниц документации Службы приложений Azure и ни разу не упомянул об инструменте/способе автоматизации создания переменных env, как в этом проекте. Хочется думать, что предыдущий разработчик не был настолько сумасшедшим, чтобы вручную создавать/обновлять каждый из них.


Конфигурация, заданная в appsettings.json, не будет добавлена/видна в разделе «Переменные среды» Службы приложений.
appsettings.json только в папке KUDU => site/wwwroot.Я не знаю, как предыдущий разработчик создал эти переменные среды.

appsettings.json.appsettings.json в Местном:
"SampleConfig": "Value from Development appsettings.json"
IConfiguration. private readonly ILogger<WeatherForecastController> _logger;
private readonly IConfiguration myconfig;
public WeatherForecastController(ILogger<WeatherForecastController> logger,IConfiguration config)
{
_logger = logger;
myconfig = config;
}
var mysetting= myconfig["SampleConfig"];
Вывод моего приложения со значениями из appsettings.json:

Существует ли инструмент для автоматизации зеркального отображения новых записей в
appsettings.jsonи создания соответствующих переменных среды?
Azure CLI.Я следил за этим MSDoc для команд CLI.
az login
az webapp config appsettings set --name AppSettings6June --resource-group YourRGName --settings "SampleConfig=Value from Deployed Azure App Service" "Name=Harshitha" "Title=Azure App Service"

ИЛИ
json (создать новый файл или отредактировать существующий appsettings.json) и запустить приведенную ниже команду.az webapp config appsettings set --name AppSettings6June --resource-group YourRGName --settings "@appsettings.json"
Мой appsettings.json:
{
"SampleConfig": "Value from Deployed Azure App Service",
"Name": "Harshitha",
"Title": "Azure App Service"
}

Переменные среды Azure:

Вывод службы приложений:

Я вижу, что на странице переменных среды есть кнопка «Извлечь ссылочные значения». Судя по немногим результатам Google, похоже, что это означает получение обновленных значений из Key Vault. Это верно?
Для получения более подробной информации обратитесь к этому MSDoc и моему SOThread.
Вы ищете что-нибудь еще?
Используйте эту команду , чтобы просмотреть настройки приложения.
Напомним, что команда CLI для получения настроек из файла и добавления/редактирования их в службу приложений является наиболее близкой к инструменту «синхронизации», но не совсем, поскольку она не может определить, когда следует удалить переменную env. Еще хуже, если, как в моем случае в этом проекте, источником истины будут считаться переменные окружения Azure. Мне нужен инструмент, который сделает обратное, и бонусные баллы, если он сможет показать разницу между Azure и файлом.