你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 应用服务中的环境变量和应用设置
注意
从 2024 年 6 月 1 日开始,所有新创建的应用服务应用都可以选择生成唯一的默认主机名,命名约定为 <app-name>-<random-hash>.<region>.azurewebsites.net
。 现有应用名称将保持不变。
示例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
有关更多详细信息,请参阅应用服务资源的唯一默认主机名。
在 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。 可能值为 Free 、Shared 、Basic 和 Standard 。 |
|
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。 可将其更改为默认时区中列出的任何有效值。 如果无法识别指定的值,则使用 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_SASURI 和 WEBSITE_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 )。 |
|
WEBSITE_DNS_ATTEMPTS |
尝试名称解析的次数。 | |
WEBSITE_DNS_TIMEOUT |
等待名称解析的秒数 |
变量前缀
下表显示了应用服务用于各种目的的环境变量前缀。
设置名 | 说明 |
---|---|
APPSETTING_ |
表示客户在应用配置中将变量设置为应用设置。 它作为应用设置注入到 .NET 应用中。 |
MAINSITE_ |
表示变量特定于应用本身。 |
SCMSITE_ |
表示变量特定于 Kudu 应用。 |
SQLCONNSTR_ |
表示应用配置中的 SQL Server 连接字符串。 它作为连接字符串注入到 .NET 应用中。 |
SQLAZURECONNSTR_ |
表示应用配置中的 Azure SQL 数据库连接字符串。 它作为连接字符串注入到 .NET 应用中。 |
POSTGRESQLCONNSTR_ |
表示应用配置中的 PostgreSQL 连接字符串。 它作为连接字符串注入到 .NET 应用中。 |
CUSTOMCONNSTR_ |
表示应用配置中的自定义连接字符串。 它作为连接字符串注入到 .NET 应用中。 |
MYSQLCONNSTR_ |
表示应用配置中的 MySQL 数据库连接字符串。 它作为连接字符串注入到 .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 。 |
SCM_MAX_ZIP_PACKAGE_COUNT |
你的应用会保留使用 zip 部署部署的最新 zip 文件中的 5 个。 通过将应用设置设为其他数字,可以保留更多或更少。 |
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 对更新 site 和 siteconfig 的调用完全应用到所有实例。 如果使用 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_MODE 为 Dedicated 时,此设置才适用。 |
|
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 元素中设置。 |
WordPress
应用程序设置 | 作用域 | 值 | 最大值 | 说明 |
---|---|---|---|---|
WEBSITES_ENABLE_APP_SERVICE_STORAGE |
Web 应用 | 是 | - | 当设置为 TRUE 时,文件内容将在重新启动过程中保留。 |
WP_MEMORY_LIMIT |
WordPress | 128M | 512M | 前端或常规 WordPress PHP 内存限制(按脚本)。 不得超过 PHP_MEMORY_LIMIT |
WP_MAX_MEMORY_LIMIT |
WordPress | 256M | 512M | 管理员仪表板 PHP 内存限制(按脚本)。 与前端脚本相比,常规管理员仪表板/后端脚本需要占用大量内存。 不得超过 PHP_MEMORY_LIMIT。 |
PHP_MEMORY_LIMIT |
PHP | 512M | 512M | 常规 PHP 脚本的内存限制。 只能呈下降趋势。 |
FILE_UPLOADS |
PHP | 开 | - | 可以为 On 或 Off。 请注意,值区分大小写。 启用或禁用文件上传。 |
UPLOAD_MAX_FILESIZE |
PHP | 50M | 最大文件上传大小限制为 256M。 最多可增加到 256M。 | |
POST_MAX_SIZE |
PHP | 128M | 256M | 最多可增加到 256M。 通常应大于 UPLOAD_MAX_FILESIZE。 |
MAX_EXECUTION_TIME |
PHP | 120 | 120 | 只能呈下降趋势。 如果脚本响应时间超过 120 秒,请关闭脚本。 添加以避免错误的脚本减缓系统速度。 |
MAX_INPUT_TIME |
PHP | 120 | 120 | 分析输入请求的最长时间限制。 只能呈下降趋势。 |
MAX_INPUT_VARS |
PHP | 10000 | 10000 | - |
DATABASE_HOST |
数据库 | - | - | 用于连接到 WordPress 的数据库主机。 |
DATABASE_NAME |
数据库 | - | - | 用于连接到 WordPress 的数据库名称。 |
DATABASE_USERNAME |
数据库 | - | - | 用于连接到 WordPress 的数据库用户名。 |
DATABASE_PASSWORD |
数据库 | - | - | 用于连接到 MySQL 数据库的数据库密码。 若要更改 MySQL 数据库密码,请参阅更新管理员密码。 每当更改 MySQL 数据库密码时,也需要更新应用程序设置。 |
WORDPRESS_ADMIN_EMAIL |
仅部署 | - | - | WordPress 管理员电子邮件。 |
WORDPRESS_ADMIN_PASSWORD |
仅部署 | - | - | WordPress 管理员密码。 这仅用于部署目的。 修改这些值不会影响 WordPress 安装。 若要更改 WordPress 管理员密码,请参阅重置密码。 |
WORDPRESS_ADMIN_USER |
仅部署 | - | - | WordPress 管理员用户名 |
WORDPRESS_ADMIN_LOCALE_CODE |
仅部署 | - | - | 用于连接到 WordPress 的数据库用户名。 |
域和 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 解析。 默认情况下将刷新过期的 DNS 缓存条目,并每 4.5 分钟刷新一次现有缓存。 |
TLS/SSL
有关详细信息,请参阅在 Azure 应用服务的代码中使用 TLS/SSL 证书。
设置名 | 说明 |
---|---|
WEBSITE_LOAD_CERTIFICATES |
要在代码中加载的证书的指纹值(以逗号分隔),或用于在代码中加载所有证书的 * 。 只能加载添加到应用中的证书。 |
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 。 将所有部署槽的此设置设置为 false 或 0 ,以便对其进行交换。 特定设置类型没有精细的控制。 |
|
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 |
设置为 true 或 1 以跳过 applicationHost.config 中的所有绑定。 默认为 false 。 如果应用由于使用槽的交换主机名更新 applicationHost.config 而触发重启,请将此变量设置为 true ,以免重启此类型。 如果正在运行 Windows Communication Foundation (WCF) 应用,请不要设置此变量。 |
自定义容器
有关自定义容器的详细信息,请参阅在 Azure 中运行自定义容器。
设置名 | 说明 | 示例 |
---|---|---|
WEBSITES_ENABLE_APP_SERVICE_STORAGE |
对于 Linux 自定义容器:设置为 true 以允许跨缩放实例共享 /home 目录。 Linux 自定义容器的默认值为 false 。对于 Windows 容器:设置为 true 以允许跨缩放实例共享 c:\home 目录。 Windows 容器的默认值为 true 。 |
|
WEBSITES_CONTAINER_START_TIME_LIMIT |
容器完成重新启动所需的等待时间(以秒为单位)。 默认值为 230 。 可将其增加到的最大值为 1800 。 |
|
WEBSITES_CONTAINER_STOP_TIME_LIMIT |
等待容器正常终止的时间(以秒为单位)。 默认值为 5 。 可以增加到最大值 120 |
|
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 容器均配置了内存限额,具体取决于应用服务计划 SKU。 设置为所需的内存限制(单位为 MB)。 在同一计划的各个应用中,此设置的累计总和不得超过所选定价层允许的数额。 有关详细信息,请参阅自定义容器内存。 |
扩展
设置名 | 说明 |
---|---|
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 设置为 true 或 1 的自定义 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 。 Windows 应用和使用 WordPress 模板创建的 Linux 应用的默认值为 1 。 所有其他 Linux 应用的默认值为 0 。 |
WEBSITE_READONLY_APP |
使用动态缓存时,可以通过将此变量设置为 1 来禁用对应用根(D:\home\site\wwwroot 或 /home/site/wwwroot )的写入访问。 除了 App_Data 目录之外,不允许使用排他锁,这样部署才不会被锁定的文件阻止。 |
网络
设置名 | 说明 |
---|---|
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_CONTENTOVERVNET |
如果要在应用服务上装载 Azure 文件共享,并且存储帐户仅限于 VNET,请确保启用此设置并将值设置为 1 。 |
密钥保管库引用
以下环境变量与密钥保管库引用相关。
设置名 | 说明 |
---|---|
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 |
true 或 false 。 默认值是 false 。 这是适用于 Azure 应用服务的旧版 Azure 移动应用集成的设置。 将此选项设置为 true 可解决为经过身份验证的用户生成的 SID(安全 ID)可能发生更改的问题(如果用户更改其配置文件信息时)。 更改此值可能会导致现有的 Azure 移动应用用户 ID 发生更改。 大多数应用不需要使用此设置。 |
WEBSITE_AUTH_NONCE_DURATION |
格式为 _hours_:_minutes_:_seconds_ 的 timespan 值。 默认值为 00:05:00 (即 5 分钟)。 此设置控制为所有浏览器驱动登录生成的加密 nonce 的生存期。 如果在指定的时间内无法完成登录,则会自动重试登录流。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.nonce.nonceExpirationInterval 配置值。 |
WEBSITE_AUTH_PRESERVE_URL_FRAGMENT |
当设置为 true 且用户选择包含 URL 片段的应用链接时,登录过程将确保 URL 的 URL 片段部分在登录重定向过程中不会丢失。 有关详细信息,请参阅自定义 Azure 应用服务身份验证中的登录和注销。 |
WEBSITE_AUTH_USE_LEGACY_CLAIMS |
为了跨升级保持后向兼容性,身份验证模块使用 /.auth/me API 中名称由短到长的旧声明映射,因此将排除某些映射(例如“角色”)。 若要获取较新版本的声明映射,请将此变量设置为 False 。 在“角色”示例中,它将映射到长声明名称“http://schemas.microsoft.com/ws/2008/06/identity/claims/role"”。 |
WEBSITE_AUTH_DISABLE_WWWAUTHENTICATE |
true 或 false 。 默认值是 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 可用于刷新会话令牌的时间量。 此时间段之后的刷新尝试将会失败,最终用户将需要再次登录。 此应用程序设置适用于 V1(经典)配置体验。 如果使用 V2 身份验证配置架构,则应改用 login.tokenStore.tokenRefreshExtensionHours 配置值。 |
WEBSITE_AUTH_TRACE_LEVEL |
控制写入到应用程序日志记录中的身份验证跟踪的详细程度。 有效值为 Off 、Error 、Warning 、Information 和 Verbose 。 默认值是 Verbose 。 |
WEBSITE_AUTH_VALIDATE_NONCE |
true 或 false 。 默认值是 true 。 此值决不可设置为 false ,除非交互式登录过程中临时调试加密 nonce 验证失败。 此应用程序设置适用于 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 的最大次数。 设置为介于 2 和 100 之间的值。 纵向或横向扩展时,应用服务将对运行状况检查路径执行 ping 操作,确保新实例准备就绪。 有关详细信息,请查阅运行状况探测。 |
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT |
为避免运行状况实例不堪重负,排除的实例不得过半。 例如,如果应用服务计划扩展到 4 个实例,且其中 3 个运行不正常,则最多排除 2 个。 其他 2 个实例(1 个运行正常的实例和 1 个运行不正常的实例)将继续接收请求。 在所有实例都运行不正常的最糟糕的情况下,将不排除任何实例。 若要重写此行为,请设置为介于 1 和 100 之间的值。 值越高意味着将删除越多运行不正常的实例。 默认值为 50 (50%)。 |
推送通知
以下环境变量与推送通知功能相关。
设置名 | 说明 |
---|---|
WEBSITE_PUSH_ENABLED |
只读。 启用推送通知时添加。 |
WEBSITE_PUSH_TAG_WHITELIST |
只读。 包含通知注册中的标记。 |
WEBSITE_PUSH_TAGS_REQUIRING_AUTH |
只读。 包含通知注册中需要用户身份验证的一系列标记。 |
WEBSITE_PUSH_TAGS_DYNAMIC |
只读。 包含通知注册中自动添加的一系列标记。 |
注意
本文包含对 Microsoft 不再使用的术语的引用。 在从软件中删除该术语后,我们会将其从本文中删除。
Web 作业
以下环境变量与 Web 作业相关。
设置名 | 说明 |
---|---|
WEBJOBS_RESTART_TIME |
对于连续作业,为作业进程因任何原因发生故障时重新执行之前的延迟时间(以秒为单位)。 |
WEBJOBS_IDLE_TIMEOUT |
对于触发的作业,为超时(以秒为单位),超过此时间后,若作业处于空闲状态,则会中止作业且没有 CPU 时间或输出。 |
WEBJOBS_HISTORY_SIZE |
对于触发的作业,为每个作业的历史记录目录中保留的最大运行次数。 默认为 50 。 |
WEBJOBS_STOPPED |
设置为 1 以禁止运行任何作业,并停止当前正在运行的所有作业。 |
WEBJOBS_DISABLE_SCHEDULE |
设置为 1 以关闭所有计划触发。 仍可手动调用作业。 |
WEBJOBS_ROOT_PATH |
Web 作业文件的绝对路径或相对路径。 对于相对路径,该值与默认根路径(D:/home/site/wwwroot/ 或 /home/site/wwwroot/ )组合在一起。 |
WEBJOBS_LOG_TRIGGERED_JOBS_TO_APP_LOGS |
设置为 true 以将触发的 Web 作业的输出发送到应用程序日志管道(支持文件系统、blob 和表)。 |
WEBJOBS_SHUTDOWN_FILE |
检测到关闭请求时应用服务创建的文件。 Web 作业进程负责检测此文件是否存在并启动关闭。 使用 Web 作业 SDK 时,会自动处理此部分。 |
WEBJOBS_PATH |
只读。 当前正在运行的作业的根路径(在某个临时目录下)。 |
WEBJOBS_NAME |
只读。 当前作业名称。 |
WEBJOBS_TYPE |
只读。 当前作业类型(triggered 或 continuous )。 |
WEBJOBS_DATA_PATH |
只读。 包含作业日志、历史记录和作业的任何项目的当前作业元数据路径。 |
WEBJOBS_RUN_ID |
只读。 对于触发的作业,为作业的当前运行 ID。 |
函数
设置名 | 说明 |
---|---|
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED |
设置为 0 可禁用函数缓存。 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT |
Azure Functions 的应用设置参考 |
AzureWebJobsSecretStorageType |
Azure Functions 的应用设置参考 |
FUNCTIONS_EXTENSION_VERSION |
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 |
Azure Functions 的应用设置参考 |
WEBSITE_PLACEHOLDER_MODE |
只读。 显示函数应用正在占位符主机 (generalized ) 上还是自己的主机 (specialized ) 上运行。 |
WEBSITE_DISABLE_ZIP_CACHE |
当应用从 ZIP 包运行时 (WEBSITE_RUN_FROM_PACKAGE=1 ),最新部署的五个 ZIP 包将缓存在应用文件系统中 (D:\home\data\SitePackages)。 将此变量设置为 1 以禁用此缓存。 对于 Linux 消耗应用,默认情况下禁用 ZIP 包缓存。 |