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

Azure 应用服务中,某些设置作为环境变量可用于部署或运行时环境。 将这些设置手动设置为应用设置时,可以自定义其中一些设置。 此参考显示了可以使用或自定义的变量。

应用环境

以下环境变量通常与应用环境相关。

设置名 说明 示例
WEBSITE_SITE_NAME 只读。 应用名称。
WEBSITE_RESOURCE_GROUP 只读。 包含应用资源的 Azure 资源组名称。
WEBSITE_OWNER_NAME 只读。 包含拥有应用、资源组和 webspace 的 Azure 订阅 ID。
REGION_NAME 只读。 应用的区域名称。
WEBSITE_PLATFORM_VERSION 只读。 应用服务平台版本。
HOME 只读。 主目录的路径(例如,Windows 的 D:\home)。
SERVER_PORT 只读。 应用应侦听的端口。
WEBSITE_WARMUP_PATH 执行 ping 操作以预热应用的相对路径,以斜杠开头。 默认为 /,可对根路径执行 ping 操作。 即使应用服务身份验证设置为拒绝未经身份验证的客户端,未经身份验证的客户端(例如 Azure 流量管理器)也可以对特点路径执行 ping 操作。 (注意:此应用设置不会更改 AlwaysOn 使用的路径。)
WEBSITE_COMPUTE_MODE 只读。 指定应用在专用 (Dedicated) 或共享 (Shared) VM/s 上运行。
WEBSITE_SKU 只读。 应用的 SKU。 可能值为 FreeSharedBasicStandard
SITE_BITNESS 只读。 显示应用是 32 位 (x86) 还是 64 位 (AMD64)。
WEBSITE_HOSTNAME 只读。 应用的主要主机名。 此处未考虑自定义主机名。
WEBSITE_VOLUME_TYPE 只读。 显示当前使用的存储卷类型。
WEBSITE_NPM_DEFAULT_VERSION 应用使用的默认 npm 版本。
WEBSOCKET_CONCURRENT_REQUEST_LIMIT 只读。 Websocket 的并发请求的上限。 对于标准层及以上层,该值为 -1,但根据 VM 大小,每个 VM 仍有一个上限(请参阅跨 VM 数值)。
WEBSITE_PRIVATE_EXTENSIONS 设置为 0 可禁用专用站点扩展。
WEBSITE_TIME_ZONE 默认情况下,应用的时区始终为 UTC。 可将其更改为 TimeZone 中列出的任何有效值。 如果无法识别指定的值,则使用 UTC。 Atlantic Standard Time
WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG 槽交换之后,应用可能会遇到意外的重启。 这是因为,在交换之后,主机名绑定配置会失去同步,这种情况本身不会导致重启。 但是,某些基础存储事件(例如存储卷故障转移)可能会检测到这些差异,因而强制所有工作进程重启。 为了尽量减少这种重启,请将所有槽中的应用设置值设置为 1(默认值为 0)。 但如果运行的是 Windows Communication Foundation (WCF) 应用程序,请勿设置此值。 有关详细信息,请参阅对交换进行故障排除
WEBSITE_PROACTIVE_AUTOHEAL_ENABLED 默认情况下,当 VM 实例使用 90% 以上的已分配内存超过 30 秒时,或者过去两分钟内请求总数的 80% 用时超过 200 秒时,便会主动“自动修复”该 VM 实例。 如果 VM 实例触发了这些规则之一,则恢复过程是实例的重叠重启。 设置为 false 可禁用此恢复行为。 默认为 true。 有关详细信息,请参阅主动自动修复
WEBSITE_PROACTIVE_CRASHMONITORING_ENABLED 只要应用的 VM 实例上的 w3wp.exe 进程在 24 小时内因未处理的异常而发生故障三次以上,调试器进程将附加到该实例上的主工作进程,并且当辅助进程再次发生故障时收集内存转储。 接下来会对此内存转储进行分析,并将导致故障的线程的调用堆栈记录在应用服务日志中。 设置为 false 可禁用此自动监视行为。 默认为 true。 有关详细信息,请参阅主动故障监视
WEBSITE_DAAS_STORAGE_SASURI 在故障监视(主动或手动)期间,默认情况下会删除内存转储。 若要将内存转储保存到存储 Blob 容器,请指定 SAS URI。
WEBSITE_CRASHMONITORING_ENABLED 设置为可手动true启用故障监视。 还必须设置 WEBSITE_DAAS_STORAGE_SASURIWEBSITE_CRASHMONITORING_SETTINGS。 默认为 false。 如果启用远程调试,则此设置不起作用。 此外,如果将此设置设置为 true,则会禁用主动故障监视
WEBSITE_CRASHMONITORING_SETTINGS 采用以下格式的 JSON:{"StartTimeUtc": "2020-02-10T08:21","MaxHours": "<elapsed-hours-from-StartTimeUtc>","MaxDumpCount": "<max-number-of-crash-dumps>"}。 如果指定了 WEBSITE_CRASHMONITORING_ENABLED,则需要配置故障监视。 若要仅记录调用堆栈而不将故障转储保存在存储帐户中,请在 JSON 中添加 ,"UseStorageAccount":"false"
REMOTEDEBUGGINGVERSION 远程调试版本。
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 默认情况下,应用服务会在应用创建中创建共享存储。 若要改为使用自定义存储帐户,请设置为存储帐户的连接字符串。 有关函数的详细信息,请参阅 Functions 的应用设置参考 DefaultEndpointsProtocol=https;AccountName=<name>;AccountKey=<key>
WEBSITE_CONTENTSHARE 通过 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 指定自定义存储帐户时,应用服务会为应用创建该存储帐户中的文件共享。 若要使用自定义名称,请将此变量设置所需名称。 如果具有指定名称的文件共享不存在,应用服务会为你创建一个。 myapp123
WEBSITE_SCM_ALWAYS_ON_ENABLED 只读。 显示 Always On 是已启用 (1) 还是未启用 (0)。
WEBSITE_SCM_SEPARATE_STATUS 只读。 显示 Kudu 应用是在单独的进程中运行 (1) 还是不在单独的进程中运行 (0)。

变量前缀

下表显示了应用服务用于各种目的的环境变量前缀。

设置名 说明
APPSETTING_ 表示客户在应用配置中将变量设置为应用设置。 它作为应用设置注入到 .NET 应用中。
MAINSITE_ 表示变量特定于应用本身。
SCMSITE_ 表示变量特定于 Kudu 应用。
SQLCONNSTR_ 表示应用配置中的 SQL Server 连接字符串。 它作为连接字符串注入到 .NET 应用中。
SQLAZURECONNSTR_ 表示应用配置中的 Azure SQL 数据库连接字符串。 它作为连接字符串注入到 .NET 应用中。
POSTGRESQLCONNSTR_ 表示应用配置中的 PostgreSQL 连接字符串。 它作为连接字符串注入到 .NET 应用中。
CUSTOMCONNSTR_ 表示应用配置中的自定义连接字符串。 它作为连接字符串注入到 .NET 应用中。
MYSQLCONNSTR_ 表示应用配置中的 Azure SQL 数据库连接字符串。 它作为连接字符串注入到 .NET 应用中。
AZUREFILESSTORAGE_ Azure 文件存储中自定义容器的自定义共享连接字符串。
AZUREBLOBSTORAGE_ Azure Blob 存储中自定义容器的自定义存储帐户连接字符串。
NOTIFICATIONHUBCONNSTR_ 表示 Azure 通知中心内通知中心的连接字符串。
SERVICEBUSCONNSTR_ 表示 Azure 服务总线实例的连接字符串。
EVENTHUBCONNSTR_ 表示 Azure 事件中心内的事件中心连接字符串。
DOCDBCONNSTR_ 表示 Azure Cosmos DB 内数据库的连接字符串。
REDISCACHECONNSTR_ 表示 Azure Cache for Redis 内缓存的连接字符串。
FILESHARESTORAGE_ 表示自定义文件共享的连接字符串。

部署

以下环境变量与应用部署相关。 有关与应用服务生成自动化相关的变量,请参阅生成自动化

设置名 说明
DEPLOYMENT_BRANCH 对于本地 Git云 Git 部署(例如 GitHub),请设置为 Azure 中要部署到的分支。 默认为 master
WEBSITE_RUN_FROM_PACKAGE 设置为 1,以从本地 ZIP 包运行应用,或设置为外部 URL 的 URL,以从远程 ZIP 包运行应用。 有关详细信息,请参阅直接从 ZIP 包运行 Azure 应用服务中的应用
WEBSITE_USE_ZIP 已弃用。 使用 WEBSITE_RUN_FROM_PACKAGE
WEBSITE_RUN_FROM_ZIP 已弃用。 使用 WEBSITE_RUN_FROM_PACKAGE
WEBSITE_WEBDEPLOY_USE_SCM 设置为 false,使 WebDeploy 停止使用 Kudu 部署引擎。 默认为 true。 若要使用 Visual Studio (WebDeploy/MSDeploy) 部署到 Linux 应用,请将其设置为 false
MSDEPLOY_RENAME_LOCKED_FILES 如果 WebDeploy 部署期间无法复制 DLL,则设置为 1 以尝试重命名 DLL。 如果将 WEBSITE_WEBDEPLOY_USE_SCM 设置为 false,则此设置不适用。
WEBSITE_DISABLE_SCM_SEPARATION 默认情况下,主应用和 Kudu 应用在不同的沙盒中运行。 停止应用时,Kudu 应用仍在运行,可以继续使用 Git 部署和 MSDeploy。 每个应用都有自己的应用 ID。 关闭此分隔(设置为 true)是不再完全受支持的旧模式。
WEBSITE_ENABLE_SYNC_UPDATE_SITE 设置为 1 可确保在返回之前,REST API 对更新 sitesiteconfig 的调用完全应用到所有实例。 如果使用 ARM 模板进行部署,则默认为 1,以免后续 ARM 调用出现争用条件。
WEBSITE_START_SCM_ON_SITE_CREATION 在 ARM 模板部署中,在 ARM 模板中设置为 1,以在应用创建过程中预先启动 Kudu 应用。
WEBSITE_START_SCM_WITH_PRELOAD 对于 Linux 应用,设置为 true,以在对其 URL 执行 ping 操作来启用 Always On 时强制预加载 Kudu 应用。 默认为 false。 对于 Windows 应用,始终预加载 Kudu 应用。

生成自动化

Kudu 生成配置适用于本机 Windows 应用,用于控制基于 Git(或基于 ZIP)的部署行为。

设置名 说明 示例
SCM_BUILD_ARGS 在 msbuild 命令行的末尾添加内容,以替代默认命令行的任何原有部分。 若要执行清洁生成,请使用:-t:Clean;Compile
SCM_SCRIPT_GENERATOR_ARGS Kudu 使用此处所述的 azure site deploymentscript 命令生成部署脚本。 它会自动检测语言框架类型,并确定要向其传递命令的参数。 此设置将替代自动生成的参数。 若要将存储库视为纯内容文件,请使用:--basic -p <folder-to-deploy>
SCM_TRACE_LEVEL 生成跟踪级别。 默认为 1。 设置为更高的值(最高为 4)以了解更多跟踪。 4
SCM_COMMAND_IDLE_TIMEOUT 生成过程启动的每条命令在未生成任何输出的情况下要等待的超时时间(以秒为单位)。 此后,该命令被视为空闲并终止。 默认为 60(一分钟)。 在 Azure 中,还有一个在 230 秒后断开客户端连接的常规空闲请求超时。 但是,之后该命令将继续在服务器端运行。
SCM_LOGSTREAM_TIMEOUT 停止日志流式处理前处于非活动状态的超时时间(以秒为单位)。 默认为 1800(30 分钟)。
SCM_SITEEXTENSIONS_FEED_URL 站点扩展库的 URL。 默认为 https://www.nuget.org/api/v2/。 旧源的 URL 为 http://www.siteextensions.net/api/v2/
SCM_USE_LIBGIT2SHARP_REPOSITORY 设置为 0 以使用 git.exe(而不是 libgit2sharp)进行 git 操作。
WEBSITE_LOAD_USER_PROFILE 为了防止生成自动化 ASP.NET 期间(例如 Git 部署期间)出现错误 The specified user does not have a valid profile.,请将此变量设置为 1 以在生成环境中加载完整的用户配置文件。 只有在 WEBSITE_COMPUTE_MODEDedicated 时,此设置才适用。
WEBSITE_SCM_IDLE_TIMEOUT_IN_MINUTES SCM (Kudu) 站点的超时时间(以分为单位)。 默认为 20
SCM_DO_BUILD_DURING_DEPLOYMENT 对于 ZIP 部署,部署引擎假定 ZIP 文件已准备好按原样运行,并且不运行任何生成自动化。 若要启用与 Git 部署相同的生成自动化,请设置为 true

特定于资源的设置

本部分演示每种受支持语言框架的可配置运行时设置。 其他设置在部署时进行生成自动化期间可用。

设置名 说明
PORT 只读。 对于 Linux 应用,为 .NET 运行时在容器中侦听的端口。
WEBSITE_ROLE_INSTANCE_ID 只读。 当前实例的 ID。
HOME 只读。 指向共享存储的目录 (/home)。
DUMP_DIR 只读。 故障转储的目录 (/home/logs/dumps)。
APP_SVC_RUN_FROM_COPY 仅限于 Linux 应用。 默认情况下,应用在 /home/site/wwwroot 中运行,这是所有横向扩展实例的共享目录。 将此变量设置为 true,以将应用复制到容器中的本地目录并在该目录中运行它。 使用此选项时,请确保不要对 /home/site/wwwroot 的任何引用进行硬编码。 请改为使用相对于 /home/site/wwwroot 的路径。
MACHINEKEY_Decryption 对于 Windows 原生应用或 Windows 容器应用,此变量会注入到应用环境或容器中以启用 ASP.NET 加密例程(请参阅 machineKey 元素)。 若要替代 decryption 默认值,请将其配置为应用服务应用设置,或直接在 Web.config 文件的 machineKey 元素中设置。
MACHINEKEY_DecryptionKey 对于 Windows 原生应用或 Windows 容器应用,此变量会注入到应用环境或容器中以启用 ASP.NET 加密例程(请参阅 machineKey 元素)。 若要替代自动生成的 decryptionKey 值,请将其配置为应用服务应用设置,或直接在 Web.config 文件的 machineKey 元素中设置。
MACHINEKEY_Validation 对于 Windows 原生应用或 Windows 容器应用,此变量会注入到应用环境或容器中以启用 ASP.NET 加密例程(请参阅 machineKey 元素)。 若要替代 validation 默认值,请将其配置为应用服务应用设置,或直接在 Web.config 文件的 machineKey 元素中设置。
MACHINEKEY_ValidationKey 对于 Windows 原生应用或 Windows 容器应用,此变量会注入到应用环境或容器中以启用 ASP.NET 加密例程(请参阅 machineKey 元素)。 若要替代自动生成的 validationKey 值,请将其配置为应用服务应用设置,或直接在 Web.config 文件的 machineKey 元素中设置。

域和 DNS

设置名 说明 示例
WEBSITE_DNS_SERVER 用于传出连接(例如,到后端服务)的主 DNS 服务器的 IP 地址。 应用服务的默认 DNS 服务器是 Azure DNS,其 IP 地址为 168.63.129.16。 默认情况下,如果应用使用 VNet 集成,或者处于应用服务环境中,则会继承 VNet 中的 DNS 服务器配置。 10.0.0.1
WEBSITE_DNS_ALT_SERVER 用于传出连接的回退 DNS 服务器的 IP 地址。 请参阅 WEBSITE_DNS_SERVER
WEBSITE_ENABLE_DNS_CACHE 允许缓存成功的 DNS 解析。 默认情况下,除了每 4.5 分钟刷新一次现有缓存之外,还将刷新过期的 DNS 缓存条目。

TLS/SSL

有关详细信息,请参阅在 Azure 应用服务的代码中使用 TLS/SSL 证书

设置名 说明
WEBSITE_PRIVATE_CERTS_PATH 只读。 Windows 容器中已加载专用证书的路径。
WEBSITE_PUBLIC_CERTS_PATH 只读。 Windows 容器中已加载公共证书的路径。
WEBSITE_INTERMEDIATE_CERTS_PATH 只读。 Windows 容器中已加载中间证书的路径。
WEBSITE_ROOT_CERTS_PATH 只读。 Windows 容器中已加载根证书的路径。

部署槽

有关部署槽位的详细信息,请参阅设置 Azure 应用服务中的过渡环境

设置名 说明 示例
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS 默认情况下,站点扩展的版本都特定于每个槽。 这可以防止由于交换后更改扩展版本导致的意外应用程序行为。 如果还想要交换扩展版本,请在所有槽上设置 0
WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS 将特定设置指定为默认为粘滞或不可交换。 默认为 true。 将所有部署槽的此设置设置为 false0,以便对其进行交换。 特定设置类型没有精细的控制。
WEBSITE_SWAP_WARMUP_PING_PATH 执行 ping 操作以在交换中预热目标槽的路径,以斜杠开头。 默认值为 /,它通过 HTTP 对根路径执行 ping 操作。 /statuscheck
WEBSITE_SWAP_WARMUP_PING_STATUSES 交换期间,预热操作的有效 HTTP 响应代码。 如果返回的状态代码不在列表中,则预热和交换操作会停止。 默认情况下,所有响应代码都是有效的。 200,202
WEBSITE_SLOT_NUMBER_OF_TIMEOUTS_BEFORE_RESTART 槽交换期间,在特定 VM 实例上强制重启站点的最大超时时间次数。 默认为 3
WEBSITE_SLOT_MAX_NUMBER_OF_TIMEOUTS 槽交换期间,在放弃之前,单个 URL 发出的最大超时请求数。 默认为 5
WEBSITE_SKIP_ALL_BINDINGS_IN_APPHOST_CONFIG 设置为 true1 以跳过 applicationHost.config 中的所有绑定。 默认为 false。 如果应用由于使用槽的交换主机名更新 applicationHost.config 而触发重启,请将此变量设置为 true,以免重启此类型。 如果正在运行 Windows Communication Foundation (WCF) 应用,请不要设置此变量。

自定义容器

设置名 说明 示例
WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true 以允许跨缩放实例共享 /home 目录。 对于自定义容器,默认值为 true
WEBSITES_CONTAINER_START_TIME_LIMIT 容器完成重新启动所需的等待时间(以秒为单位)。 默认值为 230。 可将其增加到的最大值为 1800
DOCKER_REGISTRY_SERVER_URL 在应用服务中运行自定义容器时,为注册表服务器的 URL。 安全起见,此变量不会传递到容器。 https://<server-name>.azurecr.io
DOCKER_REGISTRY_SERVER_USERNAME DOCKER_REGISTRY_SERVER_URL 上通过注册表服务器进行身份验证的用户名。 安全起见,此变量不会传递到容器。
DOCKER_REGISTRY_SERVER_PASSWORD DOCKER_REGISTRY_SERVER_URL 上通过注册表服务器进行身份验证的密码。 安全起见,此变量不会传递到容器。
DOCKER_ENABLE_CI 设置为 true 会为自定义容器启用持续部署。 对于自定义容器,默认值为 false
WEBSITE_PULL_IMAGE_OVER_VNET 连接虚拟网络或本地中的注册表并从中拉取。 你的应用将会需要使用 VNet 集成功能来连接到虚拟网络。 对于具有专用终结点的 Azure 容器注册表,也需要此设置。
WEBSITES_WEB_CONTAINER_NAME 在 Docker Compose 应用中,仅有一个容器可以访问 Internet。 设置为配置文件中定义的容器的名称,以替代默认容器选择。 默认情况下,可访问 Internet 的容器是第一个定义端口 80 或 8080 的容器,若未找到此容器,则为配置文件中定义的第一个容器。
WEBSITES_PORT 对于自定义容器,则为将请求路由到应用服务容器上的自定义端口号。 默认情况下,应用服务尝试对端口 80 和 8080 进行自动端口检测。 此设置不会作为环境变量注入到容器中。
WEBSITE_CPU_CORES_LIMIT 默认情况下,Windows 容器将运行,其中包含所选定价层的所有可用内核。 若要减少内核的数量,请将其设置为所需的限制数量。 有关详细信息,请参阅自定义计算内核数量
WEBSITE_MEMORY_LIMIT_MB 默认情况下,部署在 Azure 应用服务中的所有 Windows 容器均限制为 1 GB RAM。 设置为所需的内存限制(单位为 MB)。 在同一计划的各个应用中,此设置的累计总和不得超过所选定价层允许的数额。 有关详细信息,请参阅自定义容器内存
CONTAINER_WINRM_ENABLED 对于 Windows 容器应用,请将其设置为 1 以启用 Windows 远程管理 (WIN-RM)。

扩展

设置名 说明
WEBSITE_INSTANCE_ID 只读。 应用扩展到多个实例时,当前 VM 实例的唯一 ID。
WEBSITE_IIS_SITE_NAME 已弃用。 使用 WEBSITE_INSTANCE_ID
WEBSITE_DISABLE_OVERLAPPED_RECYCLING 重叠回收使其在应用的当前 VM 实例关闭之前启动新的 VM 实例。 在某些情况下,它可能会导致文件锁定问题。 可以设置为 1 来尝试将其关闭。
WEBSITE_DISABLE_CROSS_STAMP_SCALE 默认情况下,如果应用使用 Azure 文件或 Docker 容器,则可以扩展交叉标记。 设置为 1 或将 true 在应用的区域内禁用交叉标记缩放。 默认为 0。 将 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true1 的自定义 Docker 容器无法缩放交叉标记,因为其内容并未完全封装在 Docker 容器中。

日志记录

设置名 说明 示例
WEBSITE_HTTPLOGGING_ENABLED 只读。 显示 Windows 原生应用的 Web 服务器日志记录是已启用 (1) 还是未启用 (0)。
WEBSITE_HTTPLOGGING_RETENTION_DAYS Windows 原生应用的 Web 服务器日志的保留期天数(如果已启用 Web 服务器日志)。 10
WEBSITE_HTTPLOGGING_CONTAINER_URL Blob 存储容器的 SAS URL,用于存储 Windows 原生应用的 Web 服务器日志(如果已启用 Web 服务器日志)。 如果未设置,Web 服务器日志会存储在应用的文件系统中(默认共享存储)。
DIAGNOSTICS_AZUREBLOBRETENTIONINDAYS Windows 原生应用的保留期天数(如果已启用应用程序日志)。 10
DIAGNOSTICS_AZUREBLOBCONTAINERSASURL Blob 存储容器的 SAS URL,用于存储 Windows 原生应用的应用程序日志(如果已启用应用程序日志日志)。
APPSERVICEAPPLOGS_TRACE_LEVEL AppServiceAppLogs 日志类型要交付到 Log Analytics 的最低日志级别。
DIAGNOSTICS_LASTRESORTFILE 要创建的文件名或日志目录的相对路径,用于记录内部错误来对侦听器进行故障排除。 默认为 logging-errors.txt
DIAGNOSTICS_LOGGINGSETTINGSFILE 相对于 D:\home/home 的日志设置文件的路径。 默认为 site\diagnostics\settings.json
DIAGNOSTICS_TEXTTRACELOGDIRECTORY 相对于应用根目录(D:\home\site\wwwroot/home/site/wwwroot)的日志文件夹。 ..\..\LogFiles\Application
DIAGNOSTICS_TEXTTRACEMAXLOGFILESIZEBYTES 日志文件的最大大小(以字节为单位)。 默认为 131072 (128 KB)。
DIAGNOSTICS_TEXTTRACEMAXLOGFOLDERSIZEBYTES 日志文件夹的最大大小(以字节为单位)。 默认为 1048576 (1 MB)。
DIAGNOSTICS_TEXTTRACEMAXNUMLOGFILES 要保留的日志文件的最大数量。 默认为 20
DIAGNOSTICS_TEXTTRACETURNOFFPERIOD 使应用程序日志记录保持启用状态的超时时间(以毫秒为单位)。 默认值为 43200000(12 小时)。
WEBSITE_LOG_BUFFERING 日志缓冲默认为已启用状态。 设置为 0 可将其禁用。
WEBSITE_ENABLE_PERF_MODE 对于原生 Windows 应用,设置为 TRUE 可关闭 10 秒钟内返回的成功请求的 IIS 日志条目。 这是通过删除扩展日志记录执行性能基准测试的一种快速方法。

性能计数器

以下是“虚假”环境变量,如果对其进行枚举,则这些变量不存在,但如果单独查找它们,则会返回它们的值。 该值是动态的,每次查找时都可能发生变化。

设置名 说明
WEBSITE_COUNTERS_ASPNET 包含 ASP.NET 性能计数器的 JSON 对象。
WEBSITE_COUNTERS_APP 包含沙盒计数器的 JSON 对象。
WEBSITE_COUNTERS_CLR 包含 CLR 计数器的 JSON 对象。
WEBSITE_COUNTERS_ALL 包含其他三个变量的组合的 JSON 对象。

Caching

设置名 说明
WEBSITE_LOCAL_CACHE_OPTION 是否启用本地缓存。 可用选项包括:
- Default:继承标记级全局设置。
- Always:对应用启用。
- OnStorageUnavailability
- Disabled:对应用禁用。
WEBSITE_LOCAL_CACHE_READWRITE_OPTION 本地缓存的读写选项。 可用选项包括:
- ReadOnly:缓存为只读。
- WriteButDiscardChanges:允许写入本地缓存,但要放弃在本地所做的更改。
WEBSITE_LOCAL_CACHE_SIZEINMB 本地缓存的大小(以 MB 为单位)。 默认值为 1000 (1 GB)。
WEBSITE_LOCALCACHE_READY 只读标志,指示应用是否使用本地缓存。
WEBSITE_DYNAMIC_CACHE 由于网络文件允许访问多个实例的共享性质,动态缓存可在实例上本地缓存最近访问的文件来提高性能。 修改文件时,缓存无效。 缓存位置为 %SYSTEMDRIVE%\local\DynamicCache(应用相同的 %SYSTEMDRIVE%\local 配额)。 默认情况下,完整内容缓存会启用(设置为 1),其中包括文件内容和目录/文件元数据(时间戳、大小、目录)。 若要节省本地磁盘的使用,请设置为 2 以仅缓存目录/文件元数据(时间戳、大小、目录内容)。 若要关闭缓存,请设置为 0
WEBSITE_READONLY_APP 使用动态缓存时,可以通过将此变量设置为 1 来禁用对应用根(D:\home\site\wwwroot/home/site/wwwroot)的写入访问。 除了 App_Data 目录之外,不允许使用排他锁,这样部署才不会被锁定的文件阻止。

网络

以下环境变量与混合连接VNET 集成相关。

设置名 说明
WEBSITE_RELAYS 只读。 配置混合连接所需的数据(包括终结点和服务总线数据)。
WEBSITE_REWRITE_TABLE 只读。 在运行时用于执行查找并正确重写连接。
WEBSITE_VNET_ROUTE_ALL 默认情况下,如果使用区域 VNet 集成,则应用仅将 RFC1918 流量路由到 VNet。 设置为 1 以将所有出站流量路由到 VNet,并遵守相同的 NSG 和 UDR。 通过设置,可以通过 VNet 访问非 RFC1918 终结点,保护离开应用的所有出站流量,并强制将所有出站流量隧道到自己选择的网络设备。
WEBSITE_PRIVATE_IP 只读。 与 VNet 集成时,与应用关联的 IP 地址。 对于区域性 VNet 集成,此值是委托子网的地址范围中的一个 IP;对于需要网关的 VNet 集成,此值是在虚拟网络网关上配置的点到站点地址池的地址范围中的一个 IP。 应用使用此 IP 通过 VNet 连接到资源。 此外,它还可以在所述地址范围内进行更改。
WEBSITE_PRIVATE_PORTS 只读。 在 VNet 集成中,显示应用可用来与其他节点通信的端口。

密钥保管库引用

以下环境变量与密钥保管库引用相关。

设置名 说明
WEBSITE_KEYVAULT_REFERENCES 只读。 包含目前在应用中配置的所有 Key Vault 引用的信息(包括各种状态的信息)。
WEBSITE_SKIP_CONTENTSHARE_VALIDATION 如果将应用(使用 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING)的共享存储连接设置为 Key Vault 引用,则应用无法在应用创建或更新时解析密钥保管库引用(如果满足以下条件之一):
- 应用使用系统分配的标识访问密钥保管库。
- 应用使用用户分配的标识访问密钥保管库,密钥保管库已使用 VNet 锁定
若要避免创建或更新时出错,请将此变量设置为 1
WEBSITE_DELAY_CERT_DELETION 用户可以将此 env var 设置为 1,以确保工作进程所依赖的证书在退出之前不会被删除。

CORS

以下环境变量与跨域资源共享配置 (CORS) 相关。

设置名 说明
WEBSITE_CORS_ALLOWED_ORIGINS 只读。 显示 CORS 允许的域。
WEBSITE_CORS_SUPPORT_CREDENTIALS 只读。 显示将 Access-Control-Allow-Credentials 标头设置为 true 是已启用 (True) 还是未启用 (False)。

身份验证 & 授权

以下环境变量与应用服务身份验证相关。

设置名 说明
WEBSITE_AUTH_DISABLE_IDENTITY_FLOW 设置为 true 时,将在基于 ASP.NET 的 Web 应用程序(包括 v1 Function Apps)中禁用线程主体标识分配。 这旨在让开发人员可以使用身份验证来保护对其站点的访问,但仍在其应用逻辑中使用单独的登录机制。 默认为 false
WEBSITE_AUTH_HIDE_DEPRECATED_SID truefalse。 默认值是 false。 这是适用于 Azure 应用服务的旧版 Azure 移动应用集成的设置。 将此选项设置为 true 可解决为经过身份验证的用户生成的 SID(安全 ID)可能发生更改的问题(如果用户更改其配置文件信息时)。 更改此值可能会导致现有的 Azure 移动应用用户 ID 发生更改。 大多数应用程序不需要使用此设置。
WEBSITE_AUTH_NONCE_DURATION 格式为 _hours_:_minutes_:_seconds_ 的 timespan 值。 默认值为 00:05:00(即 5 分钟)。 如果在指定的时间内无法完成登录,则会自动重试登录流。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.nonce.nonceExpirationInterval 配置值。
WEBSITE_AUTH_USE_LEGACY_CLAIMS 为了跨升级保持后向兼容性,身份验证模块使用 /.auth/me API 中名称由短到长的旧声明映射,因此将排除某些映射(例如“角色”)。 若要获取较新版本的声明映射,请将此变量设置为 False。 在“角色”示例中,它将映射到长声明名称“http://schemas.microsoft.com/ws/2008/06/identity/claims/role"”。
WEBSITE_AUTH_DISABLE_WWWAUTHENTICATE truefalse。 默认值是 false。 设置为 true 时,将 WWW-Authenticate HTTP 响应头标从模块生成的 HTTP 401 响应中删除。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 identityProviders.azureActiveDirectory.login.disableWwwAuthenticate 配置值。
WEBSITE_AUTH_STATE_DIRECTORY 一个本地文件系统目录路径,启用基于文件的令牌存储时会在其中存储令牌。 默认值是 %HOME%\Data\.auth。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.tokenStore.fileSystem.directory 配置值。
WEBSITE_AUTH_TOKEN_CONTAINER_SASURL 完全限定的 blob 容器 URL。 指示身份验证模块将所有加密令牌存储并加载到指定的 blob 存储容器,而不是使用默认的本地文件系统。
WEBSITE_AUTH_TOKEN_REFRESH_HOURS 任何正整数。 默认值为 72(小时)。 会话令牌过期后,此设置控制 /.auth/refresh API 可用于刷新会话令牌的时间量。 它主要用于依赖于会话令牌的 Azure 移动应用。 此时间段之后的刷新尝试将会失败,最终用户将需要再次登录。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.tokenStore.tokenRefreshExtensionHours 配置值。
WEBSITE_AUTH_TRACE_LEVEL 控制写入到应用程序日志记录中的身份验证跟踪的详细程度。 有效值为 OffErrorWarningInformationVerbose。 默认值是 Verbose
WEBSITE_AUTH_VALIDATE_NONCE truefalse。 默认值是 true。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.nonce.validateNonce 配置值。
WEBSITE_AUTH_V2_CONFIG_JSON 此环境变量由 Azure 应用服务平台自动填充,并用于配置集成身份验证模块。 此环境变量的值对应于 Azure 资源管理器中当前应用的 V2(非经典)身份验证配置。 它不用于显式配置。
WEBSITE_AUTH_ENABLED 只读。 注入到 Windows 或 Linux 应用,以指示是否启用了应用服务身份验证。
WEBSITE_AUTH_ENCRYPTION_KEY 默认情况下,自动生成的密钥用作加密密钥。 若要替代,请设置为所需的密匙。 如果要在多种应用之间共享令牌或会话,建议使用此密匙。 如果指定,它将取代 MACHINEKEY_DecryptionKey 设置。
WEBSITE_AUTH_SIGNING_KEY 默认情况下,自动生成的密钥用作签名密钥。 若要替代,请设置为所需的密匙。 如果要在多种应用之间共享令牌或会话,建议使用此密匙。 如果指定,它将取代 MACHINEKEY_ValidationKey 设置。

托管标识

以下环境变量与托管标识相关。

设置名 说明
IDENTITY_ENDPOINT 只读。 用于检索应用的托管标识的令牌的 URL。
MSI_ENDPOINT 已弃用。 使用 IDENTITY_ENDPOINT
IDENTITY_HEADER 只读。 向 IDENTITY_ENDPOINT 发出 HTTP GET 请求时必须添加到 X-IDENTITY-HEADER 标头的值。 该值由平台轮换。
MSI_SECRET 已弃用。 使用 IDENTITY_HEADER

运行状况检查

以下环境变量与运行状况检查相关。

设置名 说明
WEBSITE_HEALTHCHECK_MAXPINGFAILURES 删除实例之前失败的 ping 的最大次数。 设置为介于 2100 之间的值。 纵向或横向扩展时,应用服务将对运行状况检查路径执行 ping 操作,确保新实例准备就绪。 有关详细信息,请查阅运行状况探测
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT 为避免运行状况实例不堪重负,排除的实例不得过半。 例如,如果应用服务计划扩展到 4 个实例,且其中 3 个运行不正常,则最多排除 2 个。 其他 2 个实例(1 个运行正常的实例和 1 个运行不正常的实例)将继续接收请求。 在所有实例都运行不正常的最糟糕的情况下,将不排除任何实例。 若要重写此行为,请设置为介于 0100 之间的值。 值越高意味着将删除越多运行不正常的实例。 默认值为 50 (50%)。

推送通知

以下环境变量与推送通知功能相关。

设置名 说明
WEBSITE_PUSH_ENABLED 只读。 启用推送通知时添加。
WEBSITE_PUSH_TAG_WHITELIST 只读。 包含通知注册中的标记。
WEBSITE_PUSH_TAGS_REQUIRING_AUTH 只读。 包含通知注册中需要用户身份验证的一系列标记。
WEBSITE_PUSH_TAGS_DYNAMIC 只读。 包含通知注册中自动添加的一系列标记。

注意

本文包含对术语“白名单”的引用,Azure 不再使用该术语。 在从软件中删除该术语后,我们会将其从本文中删除。

函数

设置名 说明
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED 设置为 0 可禁用函数缓存。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT Azure Functions 的应用设置参考
FUNCTIONS_EXTENSION_VERSION Azure Functions 的应用设置参考
AzureWebJobsSecretStorageType Azure Functions 的应用设置参考
FUNCTIONS_WORKER_RUNTIME Azure Functions 的应用设置参考
AzureWebJobsStorage Azure Functions 的应用设置参考
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Azure Functions 的应用设置参考
WEBSITE_CONTENTSHARE Azure Functions 的应用设置参考
WEBSITE_CONTENTOVERVNET Azure Functions 的应用设置参考
WEBSITE_ENABLE_BROTLI_ENCODING Azure Functions 的应用设置参考
WEBSITE_USE_PLACEHOLDER 设置为 0 可对消耗计划禁用占位符函数优化。 占位符是可改进冷启动的优化。
WEBSITE_PLACEHOLDER_MODE 只读。 显示函数应用正在占位符主机 (generalized) 上还是自己的主机 (specialized) 上运行。
WEBSITE_DISABLE_ZIP_CACHE 当应用从 ZIP 包运行时 (WEBSITE_RUN_FROM_PACKAGE=1),最新部署的五个 ZIP 包将缓存在应用文件系统中 (D:\home\data\SitePackages)。 将此变量设置为 1 以禁用此缓存。 对于 Linux 消耗应用,默认情况下禁用 ZIP 包缓存。