Azure 应用服务中应用程序设置的环境变量

问题描述 投票:0回答:1

我在 .NET 6 中有一个 Web API,它使用标准

IConfiguration
appsettings.json
获取配置/设置值,并将其部署到 Azure 应用服务 (Windows)。 我正在使用 Visual Studio 部署它,我可以看到代码在应用服务中更新。但是,我在
appsettings.json
中所做的更改并未反映在“环境变量”页面(“设置”部分)的“应用程序设置”选项卡中。请注意,App Service 内的
appsettings.json
已更新(我使用 Kudu 验证了这一点)。 我不知道以前的开发人员是如何创建这些环境变量的(
appsettings.json
中的每个值一个)。

  • 这是我必须手动添加/更新的东西吗?
  • 有没有工具可以自动镜像
    appsettings.json
    中的新条目并创建相应的环境变量?
  • 我尝试通过在 Visual Studio 解决方案资源管理器中右键单击它,然后单击
    appsettings.json
    菜单项来发布
    Publishing appsettings.json
    ,但这似乎不起作用。我是否错误地使用了该菜单项?
  • 我看到环境变量页面中有一个“拉取参考值”按钮,从谷歌的一些结果来看,这似乎是从 Key Vault 中拉取更新的值。这是正确的吗?
  • 这是我第一次看到使用环境变量来代替
    appsettings.json
    中已定义的设置。我知道对于某些设置(例如,令牌/API 密钥等敏感值),这可能是避免将这些值保存在磁盘上的一种方法,但在这个项目中,每个设置都会被复制。这是常见/标准的事情吗?我通常只是复制/部署每个环境的所有
    appsettings.<env name>.json
    ,然后设置
    ASPNETCORE_ENVIRONMENT
    变量以匹配
    <env name>

如果能回答上述任何/所有问题,我将不胜感激,我已经阅读了 Azure 应用服务的几个文档页面,但没有提到像我在这个项目中那样自动创建环境变量的工具/方法。我想认为以前的开发人员还没有疯狂到手动创建/手动更新每一个。

azure azure-web-app-service appsettings azure-deployment
1个回答
0
投票

appsettings.json
中设置的配置将不会添加/在应用服务的环境变量部分中看到。

  • 您只能在 KUDU =>
    appsettings.json
    文件夹中看到
    site/wwwroot
    文件值。

我不知道以前的开发人员是如何创建这些环境变量的

  • 一种方法是在环境变量的应用程序和连接设置中手动添加。

enter image description here

  • 仅当您想覆盖现有
    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

enter image description here

有没有工具可以自动镜像

appsettings.json
中的新条目并创建相应的环境变量?

  • 如果您有更多设置需要添加或不想手动添加,您可以使用
    Azure CLI
    命令进行设置。

我已按照此 MSDoc 获取 CLI 命令。

  • 在本地打开命令提示符,导航到应用程序根文件夹并登录 Azure 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"

enter image description here

  • 可以在
    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"
}

enter image description here

Azure 环境变量:

enter image description here

应用服务输出:

enter image description here

我看到环境变量页面中有一个“拉取参考值”按钮,从谷歌的一些结果来看,这似乎是从 Key Vault 中拉取更新的值。这是正确的吗?

  • 当您在应用服务设置中将 KeyVault 值设置为 Key Vault 参考时,将使用该选项。

请参阅此 MSDoc 和我的 SOThread 了解更多详细信息。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.