配置应用程序设置

已完成

在应用服务中,应用设置是作为环境变量传递给应用程序代码的变量。 对于 Linux 应用和自定义容器,应用服务使用 --env 标志将应用设置传递到容器,以在容器中设置环境变量。

可以通过导航到应用的管理页并选择“环境变量”>“应用程序设置”访问应用程序设置

导航到“环境变量”>“应用程序设置”

对于 ASP.NET 和 ASP.NET Core 开发人员而言,在应用服务中设置应用设置类似于在 Web.config 或 appsettings.json 中的 <appSettings> 内进行设置,但应用服务中的值会替代 Web.config 或 appsettings.json 中的值。 可以在 Web.config 或 appsettings.json 中保留开发设置(例如本地 MySQL 密码),并在应用服务中安全地保留生产机密(例如 Azure MySQL 数据库密码) 。 相同的代码在本地调试时使用开发设置,部署到 Azure 时使用生产机密。

应用程序设置在存储时始终进行加密(静态加密)。

添加和编辑设置

若要添加新的应用设置,请选择“+ 添加”。 如果使用的是部署槽位,则可以指定设置是否可交换。 在对话框中,可将设置绑定到当前槽。

选择部署槽位设置以将设置固定到当前槽。

完成后,选择“应用”。 不要忘记返回“环境变量”页并选择“应用”

注意

在默认 Linux 应用服务或自定义 Linux 容器中,需要在应用服务中将应用设置名称(如 ApplicationInsights:InstrumentationKey)中的任何嵌套 JSON 密钥结构配置为密钥名称的 ApplicationInsights__InstrumentationKey。 换而言之,应将任何 : 替换为 __(双下划线)。 应用设置名称中的任何句点都将替换为 _(单下划线)。

批量编辑应用程序设置

若要批量添加或编辑应用设置,请选择“高级”编辑按钮。 完成后,选择“确定”。 不要忘记返回“环境变量”页并选择“应用”。 应用设置采用以下 JSON 格式:

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

配置连接字符串

对于 ASP.NET 和 ASP.NET Core 开发人员而言,在应用服务中设置连接字符串类似于在 Web.config 中的 <connectionStrings> 内进行设置,但在应用服务中设置的值会替代 Web.config 中的值。对于其他语言堆栈,最好改用应用设置,因为连接字符串需要变量键中的特殊格式才能访问值。

提示

有一种情况你需要使用连接字符串而不是非 .NET 语言的应用设置:仅当你在应用服务应用中为数据库配置连接字符串时,某些 Azure 数据库类型才会与应用一起备份。

添加和编辑连接字符串遵循与其他应用设置相同的原则,也可绑定到部署槽位。 你将用于批量添加或编辑的 JSON 格式设置中的连接字符串示例:

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

注意

面向 PostgreSQL 的 .NET 应用应将连接字符串设置为 Custom,以解决 .NET EnvironmentVariablesConfigurationProvider 中的已知问题

为自定义容器配置环境变量

自定义容器可能会使用需要在外部提供的环境变量。 可以通过 Cloud Shell 传递这些环境变量。 在 Bash 中:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings key1=value1 key2=value2

在 PowerShell 中运行:

Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"DB_HOST"="myownserver.mysql.database.azure.com"}

当应用运行时,应用服务应用设置会自动作为环境变量注入到进程中。 可以通过 URL https://<app-name>.scm.azurewebsites.net/Env 来验证容器环境变量。