配置应用程序设置
在应用服务中,应用设置是作为环境变量传递给应用程序代码的变量。 对于 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
来验证容器环境变量。