我在 .NET 6 中有一个 Web API,它使用标准
IConfiguration
从 appsettings.json
获取配置/设置值,并将其部署到 Azure 应用服务 (Windows)。
我正在使用 Visual Studio 部署它,我可以看到代码在应用服务中更新。但是,我在 appsettings.json
中所做的更改并未反映在“环境变量”页面(“设置”部分)的“应用程序设置”选项卡中。请注意,App Service 内的 appsettings.json
已更新(我使用 Kudu 验证了这一点)。
我不知道以前的开发人员是如何创建这些环境变量的(appsettings.json
中的每个值一个)。
appsettings.json
中的新条目并创建相应的环境变量?appsettings.json
菜单项来发布 Publishing appsettings.json
,但这似乎不起作用。我是否错误地使用了该菜单项?appsettings.json
中已定义的设置。我知道对于某些设置(例如,令牌/API 密钥等敏感值),这可能是避免将这些值保存在磁盘上的一种方法,但在这个项目中,每个设置都会被复制。这是常见/标准的事情吗?我通常只是复制/部署每个环境的所有 appsettings.<env name>.json
,然后设置 ASPNETCORE_ENVIRONMENT
变量以匹配 <env name>
。如果能回答上述任何/所有问题,我将不胜感激,我已经阅读了 Azure 应用服务的几个文档页面,但没有提到像我在这个项目中那样自动创建环境变量的工具/方法。我想认为以前的开发人员还没有疯狂到手动创建/手动更新每一个。
在
appsettings.json
中设置的配置将不会添加/在应用服务的环境变量部分中看到。
appsettings.json
文件夹中看到 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 "@test.json"
我的
appsettings.json
:
{
"SampleConfig": "Value from Deployed Azure App Service",
"Name": "Harshitha",
"Title": "Azure App Service"
}
Azure 环境变量:
应用服务输出:
我看到环境变量页面中有一个“拉取参考值”按钮,从谷歌的一些结果来看,这似乎是从 Key Vault 中拉取更新的值。这是正确的吗?