Azure Functions 的应用设置参考
函数应用中的应用程序设置包含对该函数应用的所有函数产生影响的配置选项。 可将这些设置作为环境变量进行访问。 本文列出可在函数应用中使用的应用设置。
可以通过以下几种方法添加、更新和删除函数应用设置:
如果更改函数应用设置,则需要重启函数应用。
在本文中,为了便于阅读,示例连接字符串值已被截断。
由于 Azure Functions 利用 Azure 应用服务平台进行托管,因此你可能会发现与 Azure 应用服务中环境变量和应用设置中记录的函数应用托管相关的一些设置。
应用设置注意事项
使用应用设置时,应注意以下注意事项:
如果更改函数应用设置,则需要重启函数应用。
在设置名称中,双下划线 (
__
) 和冒号 (:
) 被视为保留值。 双下划线在 Windows 和 Linux 上解释为分层分隔符,而冒号仅在 Windows 上解释为分层分隔符。 例如,设置AzureFunctionsWebHost__hostid=somehost_123456
将解释为以下 JSON 对象:"AzureFunctionsWebHost": { "hostid": "somehost_123456" }
在本文中,仅使用双下划线,因为它们在两个操作系统上都受支持。 支持托管标识连接的大多数设置都使用双下划线。
当 Functions 在本地运行时,将在 local.settings.json 的
Values
集合中指定应用设置。host.json 文件和 local.settings.json 文件中提供了其他函数应用程序配置选项。
可以使用应用程序设置替代 host.json 设置值,而不必更改 host.json 文件本身。 这对于需要针对特定环境配置或修改特定 host.json 设置的方案很有用。 这也让你可以更改 host.json 设置,而不必重新发布项目。 若要了解详细信息,请参阅 host.json 参考文章。
本文记载了与函数应用最相关的设置。 由于 Azure Functions 在应用服务上运行,因此可能还支持其他应用程序设置。 要了解详细信息,请参阅 Azure 应用服务中的环境变量和应用设置。
一些方案还要求使用应用服务网站设置中记录的设置。
更改任何只读应用服务应用程序设置可能会使函数应用进入无响应状态。
使用 REST API(包括 ARM 模板)更新应用程序设置时请小心操作。 由于这些 API 替换了现有的应用程序设置,因此在使用 REST API 或 ARM 模板添加或修改设置时必须包含所有现有设置。 如果可能,请使用 Azure CLI 或 Azure PowerShell 以编程方式使用应用程序设置。 有关详细信息,请参阅使用应用程序设置。
APPINSIGHTS_INSTRUMENTATIONKEY
Application Insights 的检测密钥。 不要同时使用 APPINSIGHTS_INSTRUMENTATIONKEY
和 APPLICATIONINSIGHTS_CONNECTION_STRING
。 如果可能,请使用 APPLICATIONINSIGHTS_CONNECTION_STRING
。 当 Application Insights 在主权云中运行时,必须使用 APPLICATIONINSIGHTS_CONNECTION_STRING
。 有关详细信息,请参阅如何配置对 Azure Functions 的监视。
键 | 示例值 |
---|---|
APPINSIGHTS_INSTRUMENTATIONKEY | 55555555-af77-484b-9032-64f83bb83bb |
不要同时使用 APPINSIGHTS_INSTRUMENTATIONKEY
和 APPLICATIONINSIGHTS_CONNECTION_STRING
。 建议使用 APPLICATIONINSIGHTS_CONNECTION_STRING
。
APPLICATIONINSIGHTS_AUTHENTICATION_STRING
通过使用 Microsoft Entra 身份验证,启用对 Application Insights 的访问。 当必须使用 Microsoft Entra 身份验证连接到 Application Insights 工作区时,请使用此设置。
使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
时,设置的特定值取决于托管标识的类型:
托管的标识 | 设置值 |
---|---|
系统分配 | Authorization=AAD |
用户分配 | Authorization=AAD;ClientId=<USER_ASSIGNED_CLIENT_ID> |
此身份验证要求适用于与 Functions 主机、快照调试器、探查器以及任何特定于语言的代理的连接。 若要使用此设置,托管标识必须已可供函数应用使用,其分配到的角色等效于监视指标发布服务器。
APPLICATIONINSIGHTS_CONNECTION_STRING
Application Insights 的连接字符串。 不要同时使用 APPINSIGHTS_INSTRUMENTATIONKEY
和 APPLICATIONINSIGHTS_CONNECTION_STRING
。 虽然建议在所有情况下使用 APPLICATIONINSIGHTS_CONNECTION_STRING
,但在以下情况下需要使用:
- 当函数应用需要通过连接字符串提供支持的已添加自定义项时。
- 当 Application Insights 实例在需要自定义终结点的主权云中运行时。
有关详细信息,请参阅连接字符串。
键 | 示例值 |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
若要使用 Microsoft Entra 身份验证连接到 Application Insights,应使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
。
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL
重要
Azure Functions 代理是 Azure Functions 运行时 1.x 到 3.x 版的旧功能。 有关 4.x 版本中旧版支持的详细信息,请参阅 Functions 代理。
默认情况下,Functions 代理使用快捷方式从代理直接将 API 调用发送到同一函数应用中的函数。 使用此快捷方式取代创建新的 HTTP 请求。 此设置让你能够禁用该快捷方式行为。
键 | 值 | 说明 |
---|---|---|
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | true |
具有指向本地函数应用中函数的后端 URL 的调用不会直接发送到函数, 相反,请求会定向回函数应用的 HTTP 前端。 |
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | false |
具有指向本地函数应用中函数的后端 URL 的调用会直接转发到函数。 默认值为 false 。 |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
重要
Azure Functions 代理是 Azure Functions 运行时 1.x 到 3.x 版的旧功能。 有关 4.x 版本中旧版支持的详细信息,请参阅 Functions 代理。
此设置控制在将字符 %2F
插入后端 URL 时,是否将其解释为路由参数中的斜杠。
密钥 | 值 | 说明 |
---|---|---|
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | true |
包含编码斜杠的路由参数已解码。 |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | false |
所有路由参数均原样传递,这是默认行为。 |
例如,考虑位于 myfunction.com
域的函数应用的 proxies.json 文件。
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"root": {
"matchCondition": {
"route": "/{*all}"
},
"backendUri": "example.com/{all}"
}
}
}
如果 AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
设置为 true
,则 URL example.com/api%2ftest
解析为 example.com/api/test
。 默认情况下,URL 保持为 example.com/test%2fapi
不变。 有关详细信息,请参阅 Functions 代理。
AZURE_FUNCTIONS_ENVIRONMENT
在 Azure 中运行时,配置函数应用的运行时托管环境。 此值在初始化期间读取,且运行时仅遵循以下值:
值 | 说明 |
---|---|
Production |
表示一个生产环境,其中日志记录减少且性能全面优化。 如果未设置 AZURE_FUNCTIONS_ENVIRONMENT 或将其设置为不受支持的值,则这是默认值。 |
Staging |
表示过渡环境,例如在过渡槽中运行时。 |
Development |
开发环境支持更详细的日志记录和其他性能优化。 在本地计算机上运行时,Azure Functions Core Tools 会将 AZURE_FUNCTIONS_ENVIRONMENT 设置为 Development 。 无法在 local.settings.json 文件中重写此设置。 |
如果需要将 Azure 中的运行时环境更改为 Production
以外的内容,请使用此设置,而不是 ASPNETCORE_ENVIRONMENT
。 有关详细信息,请参阅基于环境的 Startup 类和方法。
此设置在 Functions 运行时的 1.x 版本中不可用。
AzureFunctionsJobHost__*
在 Functions 运行时的版本 2.x 和更高版本中,应用程序设置可以替代当前环境中的 host.json 设置。 这些替代表示为名为 AzureFunctionsJobHost__path__to__setting
的应用程序设置。 有关详细信息,请参阅替代 host.json 值。
AzureFunctionsWebHost__hostid
设置给定函数应用的主机 ID,该 ID 应是唯一 ID。 此设置将替代自动为应用生成的主机 ID 值。 仅当需要防止共享同一存储帐户的函数应用之间的主机 ID 冲突时,才使用此设置。
主机 ID 必须满足以下要求:
- 长度为 1 到 32 个字符
- 只能包含小写字母、数字和短划线
- 不能以短划线开头或结尾
- 不能包含连续的短划线
生成 ID 的一种简单方法是获取 GUID、删除短划线,并将其转换为小写,例如将 GUID 1835D7B5-5C98-4790-815D-072CC94C6F71
转换为值 1835d7b55c984790815d072cc94c6f71
。
键 | 示例值 |
---|---|
AzureFunctionsWebHost__hostid | myuniquefunctionappname123456789 |
有关详细信息,请参阅主机 ID 注意事项。
AzureWebJobsDashboard
此设置已弃用,仅支持在 Azure Functions 运行时 1.x 版本上运行。
用于存储日志并在门户上的“监视”选项卡中显示这些日志的可选存储帐户连接字符串。 存储帐户必须是支持 Blob、队列和表的通用帐户。 有关详细信息,请参阅存储帐户要求。
键 | 示例值 |
---|---|
AzureWebJobsDashboard | DefaultEndpointsProtocol=https;AccountName=... |
AzureWebJobsDisableHomepage
值为 true
将禁用针对函数应用根 URL 显示的默认登陆页。 默认值为 false
。
键 | 示例值 |
---|---|
AzureWebJobsDisableHomepage | true |
如果省略此应用设置或将其设置为 false
,则会显示类似于以下示例的页来响应 URL <functionappname>.chinacloudsites.cn
。
AzureWebJobsDotNetReleaseCompilation
true
表示在编译 .NET 代码时使用“发布”模式;false
表示使用“调试”模式。 默认值为 true
。
键 | 示例值 |
---|---|
AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
要启用的 beta 功能的逗号分隔列表。 由这些标志启用的 Beta 功能尚未处于生产就绪状态,但在发布之前可出于试验目的启用这些功能。
键 | 示例值 |
---|---|
AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
将 EnableProxies
添加到此列表,以便在计划迁移到 Azure API 管理时,在 Functions 运行时版本 4.x 上重新启用代理。 有关详细信息,请参阅在 Functions v4.x 中重新启用代理。
AzureWebJobsKubernetesSecretName
指示用于存储密钥的 Kubernetes 机密资源。 仅在 Kubernetes 中运行时受支持。 此设置要求将 AzureWebJobsSecretStorageType
设置为 kubernetes
。 如果未设置 AzureWebJobsKubernetesSecretName
,则存储库被视为只读。 在这种情况下,必须在部署之前生成值。 在部署到 Kubernetes 时,Azure Functions Core Tools 会自动生成值。
键 | 示例值 |
---|---|
AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
若要了解详细信息,请参阅管理密钥存储。
AzureWebJobsSecretStorageKeyVaultClientId
用户分配的托管标识或应用注册的客户端 ID,用于访问存储密钥的保管库。 此设置要求将 AzureWebJobsSecretStorageType
设置为 keyvault
。 在 4.x 版及更高版本的 Functions 运行时中受支持。
键 | 示例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
若要了解详细信息,请参阅管理密钥存储。
AzureWebJobsSecretStorageKeyVaultClientSecret
用户分配的托管标识或应用注册的客户端 ID 的机密,用于访问存储密钥的保管库。 此设置要求将 AzureWebJobsSecretStorageType
设置为 keyvault
。 在 4.x 版及更高版本的 Functions 运行时中受支持。
键 | 示例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
若要了解详细信息,请参阅管理密钥存储。
AzureWebJobsSecretStorageKeyVaultName
此设置已弃用,仅在 Azure Functions 运行时版本 3.x 上运行时使用。
用于存储密钥的密钥保管库实例的名称。 此设置仅在不再受支持的 Functions 运行时版本 3.x 中使用。 对于版本 4.x,请改为使用 AzureWebJobsSecretStorageKeyVaultUri
。 此设置要求将 AzureWebJobsSecretStorageType
设置为 keyvault
。
保管库必须有一项与承载资源的系统分配托管标识相对应的访问策略。 访问策略应向标识授予以下机密权限:Get
、Set
、List
和 Delete
。
在本地运行函数时,将使用开发人员标识,且设置必须位于 local.settings.json 文件中。
键 | 示例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
若要了解详细信息,请参阅管理密钥存储。
AzureWebJobsSecretStorageKeyVaultTenantId
用于访问存储密钥的保管库的应用注册的租户 ID。 此设置要求将 AzureWebJobsSecretStorageType
设置为 keyvault
。 在 4.x 版及更高版本的 Functions 运行时中受支持。 若要了解详细信息,请参阅管理密钥存储。
密钥 | 示例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
用于存储密钥的密钥保管库实例的 URI。 在 4.x 版及更高版本的 Functions 运行时中受支持。 这是使用密钥保管库实例进行密钥存储的推荐设置。 此设置要求将 AzureWebJobsSecretStorageType
设置为 keyvault
。
AzureWebJobsSecretStorageKeyVaultUri
值应该是“密钥保管库概述”标签中显示的“保管库 URI”的完整值,包括 。
保管库必须有一项与承载资源的系统分配托管标识相对应的访问策略。 访问策略应向标识授予以下机密权限:Get
、Set
、List
和 Delete
。
在本地运行函数时,将使用开发人员标识,且设置必须位于 local.settings.json 文件中。
键 | 示例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.cn |
若要了解详细信息,请参阅使用 Azure Functions 的密钥保管库引用。
AzureWebJobsSecretStorageSas
用于存储密钥的第二个存储帐户的 Blob 存储 SAS URL。 默认情况下,Functions 使用 AzureWebJobsStorage
中设置的帐户。 使用此机密存储选项时,请确保未显示设置 AzureWebJobsSecretStorageType
或将其设置为 blob
。 若要了解详细信息,请参阅管理密钥存储。
密钥 | 示例值 |
---|---|
AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
指定用于密钥存储的存储库或提供程序。 密钥在存储之前始终使用函数应用特有的密钥进行加密。
密钥 | 值 | 说明 |
---|---|---|
AzureWebJobsSecretStorageType | blob |
密钥存储在通过 AzureWebJobsStorage 设置提供的帐户中的 Blob 存储容器中。 未设置 AzureWebJobsSecretStorageType 时,Blob 存储将是默认行为。若要指定其他存储帐户,请使用 AzureWebJobsSecretStorageSas 设置来指示第二个存储帐户的 SAS URL。 |
AzureWebJobsSecretStorageType | files |
密钥将持久保存于文件系统中。 这是 Functions v1.x 的默认行为。 |
AzureWebJobsSecretStorageType | keyvault |
密钥存储在由 AzureWebJobsSecretStorageKeyVaultName 设置的密钥保管库实例中。 |
AzureWebJobsSecretStorageType | kubernetes |
仅当在 Kubernetes 中运行 Functions 运行时时才受支持。 如果未设置 AzureWebJobsKubernetesSecretName ,则存储库被视为只读。 在这种情况下,必须在部署之前生成值。 在部署到 Kubernetes 时,Azure Functions Core Tools 会自动生成值。 |
若要了解详细信息,请参阅管理密钥存储。
AzureWebJobsStorage
指定 Functions 运行时用于常规操作的 Azure 存储帐户的连接字符串。 此存储帐户的一些 Functions 用途包括密钥管理、计时器触发器管理和事件中心检查点。 存储帐户必须是支持 Blob、队列和表的通用帐户。 有关详细信息,请参阅存储帐户要求。
密钥 | 示例值 |
---|---|
AzureWebJobsStorage | DefaultEndpointsProtocol=https;AccountName=... |
可以为该存储帐户使用基于标识的连接,而不是连接字符串。 有关详细信息,请参阅使用标识连接到主机存储。
AzureWebJobsStorage__accountName
使用基于标识的存储连接时,设置存储帐户的帐户名称,而不是使用 AzureWebJobsStorage
中的连接字符串。 此语法是 AzureWebJobsStorage
独有的,不能用于其他基于标识的连接。
密钥 | 示例值 |
---|---|
AzureWebJobsStorage__accountName | <STORAGE_ACCOUNT_NAME> |
对于主权云或使用自定义 DNS 时,必须改用特定于服务的 AzureWebJobsStorage__*ServiceUri
设置。
AzureWebJobsStorage__blobServiceUri
使用基于标识的存储连接时,设置存储帐户的 Blob 服务的数据平面 URI。
密钥 | 示例值 |
---|---|
AzureWebJobsStorage__blobServiceUri | https://<STORAGE_ACCOUNT_NAME>.blob.core.chinacloudapi.cn |
在主权云中或使用自定义 DNS 时,使用此设置,而不是 AzureWebJobsStorage__accountName
。 有关详细信息,请参阅使用标识连接到主机存储。
AzureWebJobsStorage__queueServiceUri
使用基于标识的存储连接时,设置存储帐户队列服务的数据平面 URI。
密钥 | 示例值 |
---|---|
AzureWebJobsStorage__queueServiceUri | https://<STORAGE_ACCOUNT_NAME>.queue.core.chinacloudapi.cn |
在主权云中或使用自定义 DNS 时,使用此设置,而不是 AzureWebJobsStorage__accountName
。 有关详细信息,请参阅使用标识连接到主机存储。
AzureWebJobsStorage__tableServiceUri
使用基于标识的存储连接时,设置存储帐户的表服务的数据平面 URI。
密钥 | 示例值 |
---|---|
AzureWebJobsStorage__tableServiceUri | https://<STORAGE_ACCOUNT_NAME>.table.core.chinacloudapi.cn |
在主权云中或使用自定义 DNS 时,使用此设置,而不是 AzureWebJobsStorage__accountName
。 有关详细信息,请参阅使用标识连接到主机存储。
AzureWebJobs_TypeScriptPath
用于 TypeScript 的编译器的路径。 允许根据需要重写默认值。
键 | 示例值 |
---|---|
AzureWebJobs_TypeScriptPath | %HOME%\typescript |
DOCKER_REGISTRY_SERVER_PASSWORD
指示用于访问专用容器注册表的密码。 仅当从专用容器注册表部署容器化函数应用时,才需要此设置。 要了解详细信息,请参阅 Azure 应用服务中的环境变量和应用设置。
DOCKER_REGISTRY_SERVER_URL
指示专用容器注册表的 URL。 仅当从专用容器注册表部署容器化函数应用时,才需要此设置。 要了解详细信息,请参阅 Azure 应用服务中的环境变量和应用设置。
DOCKER_REGISTRY_SERVER_USERNAME
指示用于访问专用容器注册表的帐户。 仅当从专用容器注册表部署容器化函数应用时,才需要此设置。 要了解详细信息,请参阅 Azure 应用服务中的环境变量和应用设置。
DOCKER_SHM_SIZE
设置 Python 辅助角色使用共享内存时的共享内存大小(以字节为单位)。 要了解详细信息,请参阅共享内存。
键 | 示例值 |
---|---|
DOCKER_SHM_SIZE | 268435456 |
上述值将设置为约 256 MB 的共享内存大小。
需要将 FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
设置为 1
。
ENABLE_ORYX_BUILD
指示部署期间是否使用 Oryx 生成系统。 在 Linux 上执行远程生成部署时,必须设置将 ENABLE_ORYX_BUILD
设为 true
。 有关详细信息,请参阅远程构建。
键 | 示例值 |
---|---|
ENABLE_ORYX_BUILD | true |
FUNCTION_APP_EDIT_MODE
指示是否可以在 Azure 门户中编辑函数应用。 有效值为 readwrite
和 readonly
。
键 | 示例值 |
---|---|
FUNCTION_APP_EDIT_MODE | readonly |
该值由运行时根据函数应用的语言堆栈和部署状态进行设置。 有关详细信息,请参阅 Azure 门户中的开发限制。
FUNCTIONS_EXTENSION_VERSION
托管函数应用的 Functions 运行时版本。 波浪符(~
)加主要版本号表示使用该主要版本的最新版本(例如 ~4
)。 当同一主要版本的新次要版本可用时,会自动在函数应用中安装新版本。
密钥 | 示例值 |
---|---|
FUNCTIONS_EXTENSION_VERSION | ~4 |
支持以下主要运行时版本值:
Value | 运行时目标 | 评论 |
---|---|---|
~4 |
4.x | 建议 |
~1 |
1.x | 支持于 2026 年 9 月 14 日终止 |
值为 ~4
表示应用在版本 4.x 上运行。 值 ~1
让应用固定使用运行时版本 1.x。 不再支持运行时版本 2.x 和 3.x。 有关详细信息,请参阅 Azure Functions 运行时版本概述。
如果支持部门请求将应用固定到特定次要版本,请使用完整版本号(例如 4.0.12345
)。 有关详细信息,请参阅如何面向 Azure Functions 运行时版本。
FUNCTIONS_INPROC_NET8_ENABLED
指示应用是否可以在进程内模型中使用 .NET 8。 若要在进程内模型中使用 .NET 8,必须将此值设置为 1
。 有关完整说明,请参阅更新到目标 .NET 8,包括其他必需的配置值。
密钥 | 示例值 |
---|---|
FUNCTIONS_INPROC_NET8_ENABLED | 1 |
设置为 0
,以禁用进程中模型上对 .NET 8 的支持。
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
此应用设置是 Node.js 应用的一种临时方式,用于支持中断性变更,使入口点错误更容易在 Node.js v18 或更低版本上进行故障排除。 强烈建议使用 true
,尤其是对于始终使用入口点文件的编程模型 v4 应用。 没有中断性变更 (false
) 的行为忽略入口点错误,并且不会将其记录在 Application Insights 中。
从 Node.js v20 开始,应用设置不起作用,并且始终启用中断性变更行为。
对于 Node.js v18 或更低版本,将使用应用设置,默认行为取决于错误是在注册模型 v4 函数之前还是之后发生:
- 如果错误是在注册之前引发(例如如果使用模型 v3 或入口点文件不存在),则默认行为与
false
匹配。 - 如果错误是在注册之后引发(例如你尝试注册重复模型 v4 函数),则默认行为与
true
匹配。
密钥 | 值 | 说明 |
---|---|---|
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | true |
阻止入口点错误并将其记录在 Application Insights 中。 |
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR | false |
忽略入口点错误,不要将其记录在 Application Insights 中。 |
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT
替代发送到 HTTP 终结点的请求正文大小默认限制。 该值以字节为单位给出,默认最大请求大小为 104857600 字节。
键 | 示例值 |
---|---|
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT | 250000000 |
FUNCTIONS_V2_COMPATIBILITY_MODE
重要
不再支持此设置。 提供该功能的初衷是在其仍受支持时为针对 v2.x 运行时的应用提供短期变通办法,让它们能改为在 v3.x 运行时上运行。 除了在 1.x 版本上运行的旧应用外,所有函数应用都必须在 Functions 运行时的 4.x 版本上运行:FUNCTIONS_EXTENSION_VERSION=~4
。 有关详细信息,请参阅 Azure Functions 运行时版本概述。
FUNCTIONS_WORKER_PROCESS_COUNT
指定语言工作进程的最大数量,其默认值为 1
。 允许的最大值为 10
。 函数调用均匀地分布在语言工作进程中。 语言工作进程每 10 秒生成一次,直到达到 FUNCTIONS_WORKER_PROCESS_COUNT
设置的计数。 使用多个语言工作进程与缩放不同。 当工作负荷混合使用 CPU 绑定和 I/O 绑定调用时,请考虑使用此设置。 此设置适用于所有语言运行时,除了在进程中运行的 .NET (FUNCTIONS_WORKER_RUNTIME=dotnet
)。
键 | 示例值 |
---|---|
FUNCTIONS_WORKER_PROCESS_COUNT | 2 |
FUNCTIONS_WORKER_RUNTIME
在函数应用中加载的工作运行时的语言或语言堆栈。 此项对应于应用程序中正在使用的语言(例如,“python
”)。 从 Azure Functions 运行时版本 2.x 开始,给定函数应用只能支持一种语言。
键 | 示例值 |
---|---|
FUNCTIONS_WORKER_RUNTIME | node |
有效值:
值 | 语言/语言堆栈 |
---|---|
dotnet |
C#(类库) C#(脚本) |
dotnet-isolated |
C#(独立工作进程) |
java |
Java |
node |
JavaScript TypeScript |
powershell |
PowerShell |
python |
Python |
custom |
其他 |
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
此设置允许 Python 辅助角色使用共享内存来提高吞吐量。 当 Python 函数应用遇到内存瓶颈时启用共享内存。
键 | 示例值 |
---|---|
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED | 1 |
启用此设置后,可以使用 DOCKER_SHM_SIZE 设置来设置共享内存大小。 要了解详细信息,请参阅共享内存。
JAVA_OPTS
用于自定义 Java 虚拟机 (JVM),在高级计划或专用计划上运行时,该虚拟机用于运行 Java 函数。 在消耗计划上运行时,改为使用 languageWorkers__java__arguments
。 有关详细信息,请参阅自定义 JVM。
languageWorkers__java__arguments
用于自定义 Java 虚拟机 (JVM),在消耗计划上运行时,该虚拟机用于运行 Java 函数。 此设置确实会增加消耗计划中运行的 Java 函数的冷启动时间。 对于高级或专用计划,请改用 JAVA_OPTS
。 有关详细信息,请参阅自定义 JVM。
MDMaxBackgroundUpgradePeriod
控制 PowerShell 函数应用的托管依赖项后台更新周期,默认值为 7.00:00:00
(每周)。
每个 PowerShell 工作进程都会在进程启动时检查 PowerShell 库上的模块升级,并在之后每 MDMaxBackgroundUpgradePeriod
检查一次。 当 PowerShell 库中有新的模块版本时,该版本会被安装到文件系统,并提供给 PowerShell 工作进程。 减小此值后,函数应用不但可以更快地获取较新的模块版本,而且可以增加应用资源使用率(网络 I/O、CPU、存储)。 增大此值会减少应用的资源使用率,但也可能会延迟将新的模块版本传递给你的应用。
密钥 | 示例值 |
---|---|
MDMaxBackgroundUpgradePeriod | 7.00:00:00 |
有关详细信息,请参阅依赖项管理。
MDNewSnapshotCheckPeriod
指定每个 PowerShell 辅助角色检查是否已安装托管依赖关系升级的频率。 默认频率为 01:00:00
(每小时)。
将新的模块版本安装到文件系统后,必须重启每个 PowerShell 工作进程。 重启 PowerShell 工作进程会影响应用可用性,因为它可能会中断当前的函数执行操作。 在所有 PowerShell 工作进程都重启之前,函数调用可能使用旧的模块版本,也可能使用新的模块版本。 重启所有 PowerShell 工作进程的操作会在 MDNewSnapshotCheckPeriod
内完成。
在每个 MDNewSnapshotCheckPeriod
中,PowerShell 工作进程会检查是否已安装托管依赖关系升级。 安装升级后,重启随即开始。 增加此值会降低因重启而中断的频率。 但是,这种增加也可能会增加函数调用使用新/旧模块版本的时间,这种情况不确定。
密钥 | 示例值 |
---|---|
MDNewSnapshotCheckPeriod | 01:00:00 |
有关详细信息,请参阅依赖项管理。
MDMinBackgroundUpgradePeriod
在前一次托管依赖关系升级检查之后,启动下一次升级检查之前的时间段,默认值为 1.00:00:00
(每天)。
为了避免在频繁重启工作进程时进行过多的模块升级,当任何工作进程在上一个 MDMinBackgroundUpgradePeriod
中启动了模块升级检查时,系统不会执行该检查。
键 | 示例值 |
---|---|
MDMinBackgroundUpgradePeriod | 1.00:00:00 |
有关详细信息,请参阅依赖项管理。
PIP_INDEX_URL
此设置可覆盖 Python 包索引的基 URL,默认情况下为 https://pypi.org/simple
。 如果需要使用自定义依赖项运行远程生成,请使用此设置。 这些自定义依赖项可能位于符合 PEP 503 的包索引存储库(简单 存储库 API)中,也可能位于遵循同一格式的本地目录中。
键 | 示例值 |
---|---|
PIP_INDEX_URL | http://my.custom.package.repo/simple |
若要了解更多信息,请参阅 --index-url
的 pip
文档和 Python 开发人员参考中的“使用自定义依赖项”。
PIP_EXTRA_INDEX_URL
此设置的值表示除 --index-url
之外可使用的 Python 应用自定义包的额外索引 URL。 如果需要使用在额外的包索引中找到的自定义依赖项运行远程生成,请使用此设置。 应遵循与 --index-url
相同的规则。
键 | 示例值 |
---|---|
PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
若要了解更多信息,请参阅 --extra-index-url
的 pip
文档和 Python 开发人员参考中的自定义依赖项。
PYTHON_ISOLATE_WORKER_DEPENDENCIES
配置特定于 Python 函数应用。 它定义模块加载顺序的优先级。 默认情况下,此值设置为 0
。
Key | 值 | 说明 |
---|---|---|
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 0 |
优先从内部 Python 辅助角色的依赖项加载 Python 库,这是默认行为。 requirements.txt 中定义的第三方库可能会隐藏。 |
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 1 |
优先从 requirements.txt 中定义的应用程序包加载 Python 库。 这可以防止你的库与内部 Python 辅助角色的库发生冲突。 |
PYTHON_ENABLE_DEBUG_LOGGING
在 Python 函数应用中启用调试级日志记录。 值为 1
可启用调试级日志记录。 如果没有此设置或值为 0
,只会将信息和更高级别的日志从 Python 辅助角色发送到 Functions 主机。 调试或跟踪 Python 函数执行时,请使用此设置。
调试 Python 函数时,请确保还根据需要在 host.json 文件中设置调试或跟踪日志记录级别。 若要了解详细信息,请参阅如何配置对 Azure Functions 的监视。
PYTHON_ENABLE_WORKER_EXTENSIONS
配置特定于 Python 函数应用。 如果将此配置设置为 1
,则辅助角色可载入 requirements.txt 中所定义的 1
中。 通过该扩展,函数应用能够访问第三方包提供的新功能。 此外,此配置还可以更改应用中函数加载和调用的行为。 请确保选择的扩展可信,因为你需要承担其使用风险。 Azure Functions 不提供针对任何扩展的明示保证。 有关如何使用扩展的信息,请访问扩展的手册页或自述文件文档。默认情况下,此值设置为 0
。
密钥 | 值 | 说明 |
---|---|---|
PYTHON_ENABLE_WORKER_EXTENSIONS | 0 |
禁用任何 Python 工作线程扩展。 |
PYTHON_ENABLE_WORKER_EXTENSIONS | 1 |
允许 Python 工作线程从 requirements.txt 加载扩展。 |
PYTHON_THREADPOOL_THREAD_COUNT
指定 Python 语言辅助角色将用于执行函数调用的最大线程数,对于 Python 版本 3.8
及更低版本,默认值为 1
。 对于 Python 版本 3.9
及更高版本,该值设置为 None
。 此设置不保证将在执行过程中设置的线程数。 此设置允许 Python 将线程数扩展到指定的值。 此设置仅适用于 Python 函数应用。 此外,此设置还适用于同步函数调用,而不适用于协同例程。
键 | 示例值 | 最大值 |
---|---|---|
PYTHON_THREADPOOL_THREAD_COUNT | 2 | 32 |
SCALE_CONTROLLER_LOGGING_ENABLED
此设置当前处于预览状态。
此设置控制 Azure Functions 缩放控制器中的日志记录。 有关详细信息,请参阅缩放控制器日志。
键 | 示例值 |
---|---|
SCALE_CONTROLLER_LOGGING_ENABLED | AppInsights:Verbose |
此键的值以 <DESTINATION>:<VERBOSITY>
格式提供,其定义如下:
属性 | 说明 |
---|---|
<DESTINATION> |
日志发送到的目标。 有效值为 AppInsights 和 Blob 。使用 AppInsights 时,请确保在函数应用中启用 Application Insights。将目标设置为 Blob 时,将在名为 azure-functions-scale-controller 的 blob 容器中创建日志,该容器位于 AzureWebJobsStorage 应用程序设置中设置的默认存储帐户中。 |
<VERBOSITY> |
指定日志记录级别。 支持的值为 None 、Warning 和 Verbose 。设置为 Verbose 时,缩放控制器将记录辅助角色计数每次更改的原因,以及有关将这些因素纳入决策的触发器的信息。 详细日志包含触发器警告和缩放控制器运行前后触发器使用的哈希。 |
提示
请记住,将“缩放控制器日志记录”保留为启用时,它会影响监视函数应用的潜在成本。 请考虑启用日志记录,直到收集到的数据足以了解缩放控制器的行为方式,然后将其禁用。
SCM_DO_BUILD_DURING_DEPLOYMENT
控制部署期间的远程生成行为。 如果将 SCM_DO_BUILD_DURING_DEPLOYMENT
设为 true
,项目将在部署期间远程生成。
键 | 示例值 |
---|---|
SCM_DO_BUILD_DURING_DEPLOYMENT | true |
SCM_LOGSTREAM_TIMEOUT
控制连接到流式处理日志时的超时(秒)。 默认值为 7200(2 小时)。
键 | 示例值 |
---|---|
SCM_LOGSTREAM_TIMEOUT | 1800 |
上述示例值 1800
设置超时 30 分钟。 有关详细信息,请参阅在 Azure Functions 中启用流式处理执行日志。
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
存储帐户的连接字符串,该帐户的函数应用代码和配置存储在事件驱动缩放计划中。 有关详细信息,请参阅存储帐户连接设置。
密钥 | 示例值 |
---|---|
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING | DefaultEndpointsProtocol=https;AccountName=... |
在 Windows 和 Linux 上运行的消耗和弹性高级计划应用需要此设置。 它不是专用计划应用所需的,这些应用不会由 Functions 动态扩展。
更改或删除此设置可能会导致函数应用无法启动。 若要了解详细信息,请参阅此故障排除文章。
Azure 文件存储在访问文件共享时不支持使用托管标识。 有关详细信息,请参阅 Azure 文件存储支持的身份验证方案。
WEBSITE_CONTENTOVERVNET
重要
WEBSITE_CONTENTOVERVNET 是旧的应用设置,已由 vnetContentShareEnabled 站点属性替换。
将存储帐户限制在虚拟网络中时,值 1
允许函数应用进行缩放。 将存储帐户限制于一个虚拟网络时,应启用此设置。 仅在使用 WEBSITE_CONTENTSHARE
和 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
时需要。 若要了解详细信息,请参阅将存储帐户限制在虚拟网络中。
键 | 示例值 |
---|---|
WEBSITE_CONTENTOVERVNET | 1 |
弹性高级和专用(应用服务)计划(标准及更高版本)需要此应用设置。 在消耗计划上运行时不受支持。
注意
路由到同一计划中多个函数应用共享的存储帐户中的内容共享时,请务必小心。 有关详细信息,请参阅“存储注意事项”一文中的通过虚拟网络实现的一致路由。
WEBSITE_CONTENTSHARE
Functions 用于存储函数应用代码和配置文件的文件共享名称。 事件驱动的缩放计划需要此内容。 与 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
一起使用。 默认值是运行时生成的唯一字符串,以函数应用名称开头。 有关详细信息,请参阅存储帐户连接设置。
密钥 | 示例值 |
---|---|
WEBSITE_CONTENTSHARE | functionapp091999e2 |
此设置是 Windows 和 Linux 上的消耗计划和高级计划应用所需的。 它不是专用计划应用所需的,这些应用不会由 Functions 动态扩展。
创建函数应用时会创建该共享。 更改或删除此设置可能会导致函数应用无法启动。 若要了解详细信息,请参阅此故障排除文章。
在部署期间使用 Azure 资源管理器 (ARM) 模板或 Bicep 文件创建函数应用时,需要考虑以下注意事项:
- 如果没有为主函数应用或槽中的任何应用设置
WEBSITE_CONTENTSHARE
值,则会为你生成唯一的共享值。 对于 ARM 模板部署,建议不设置WEBSITE_CONTENTSHARE
。 - 在某些情况下,必须将
WEBSITE_CONTENTSHARE
值设置为预定义值,例如在虚拟网络中使用安全存储帐户时。 在这种情况下,必须为主函数应用和每个部署槽位的应用设置唯一的共享名称。 对于由虚拟网络保护的存储帐户,还必须在自动化部署过程中创建共享本身。 有关详细信息,请参阅安全部署。 - 不要将
WEBSITE_CONTENTSHARE
设为槽位。 - 指定
WEBSITE_CONTENTSHARE
时,该值必须遵循此共享名指南。
WEBSITE_DNS_SERVER
设置应用在解析 IP 地址时使用的 DNS 服务器。 使用某些网络功能(如 Azure DNS 专用区域和专用终结点)时,通常需要此设置。
键 | 示例值 |
---|---|
WEBSITE_DNS_SERVER | 168.63.129.16 |
WEBSITE_ENABLE_BROTLI_ENCODING
控制是否将 Brotli 编码用于压缩,代替默认的 gzip 压缩。 当 WEBSITE_ENABLE_BROTLI_ENCODING
设置为 1
时,就会使用 Brotli 编码,否则使用 gzip 编码。
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED
使用 Azure 资源管理器 (ARM) 模板部署函数应用时禁用缓存。
键 | 示例值 |
---|---|
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED | 0 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
应用可以横向扩展到的最大实例数。 默认值为无限制。
重要
此设置处于预览状态。 添加了一个函数应用横向扩展上限属性,建议使用此方法限制横向扩展。
键 | 示例值 |
---|---|
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT | 5 |
WEBSITE_NODE_DEFAULT_VERSION
仅限 Windows。
设置在 Windows 上运行函数应用时要使用的 Node.js 版本。 应使用波形符 (~) 让运行时使用目标主版本的最新可用版本。 例如,当设置为 ~18
时,将使用最新版本的 Node.js 18。 当目标主版本带有波形符时,无需手动更新次版本。
键 | 示例值 |
---|---|
WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
在高级计划上运行的函数应用中执行槽交换时,如果应用使用的专用存储帐户受到限制,则交换可能会失败。 此故障是由旧版应用程序日志记录功能引起的,该功能由 Functions 和应用服务共享。 此设置将替代该旧版日志记录功能,并允许进行交换。
密钥 | 示例值 |
---|---|
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS | 0 |
向所有槽添加具有 0
值的 WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
,以确保旧版诊断设置不会阻止交换。 还可以将此设置和值作为部署槽(粘性)设置添加到生产槽。
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS
默认情况下,函数应用的版本设置特定于每个槽。 使用部署槽升级功能时使用此设置。 这可以防止由于交换后更改版本导致的意外行为。 在生产环境和槽中设置为 0
,确保还交换所有版本设置。 有关详细信息,请参阅使用槽进行升级。
键 | 示例值 |
---|---|
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS | 0 |
WEBSITE_RUN_FROM_PACKAGE
使函数应用能够从包文件运行,该文件可以从本地装载或部署到外部 URL。
密钥 | 示例值 |
---|---|
WEBSITE_RUN_FROM_PACKAGE | 1 |
有效值是解析为外部部署包文件位置的 URL 或 1
。 设置为 1
时,包必须位于 d:\home\data\SitePackages
文件夹中。 在使用启用了 WEBSITE_RUN_FROM_PACKAGE
的 zip 部署时,包将自动上传到此位置。 在预览版中,此设置名为 WEBSITE_RUN_FROM_ZIP
。 有关详细信息,请参阅从包文件运行函数。
从外部包 URL 部署时,还必须手动同步触发器。 有关详细信息,请参阅触发器同步。
WEBSITE_SKIP_CONTENTSHARE_VALIDATION
设置具有其验证检查,以确保应用可以正常启动。WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 和 WEBSITE_CONTENTSHARE 设置具有额外的验证检查,以确保应用可以正常启动。 如果由于网络约束或其他限制因素,函数应用无法正确调用下游存储帐户或密钥保管库,则创建应用程序设置将失败。 当 WEBSITE_SKIP_CONTENTSHARE_VALIDATION 设置为 1
时,将跳过验证检查;否则,该值默认为 0
并会进行验证。
密钥 | 示例值 |
---|---|
WEBSITE_SKIP_CONTENTSHARE_VALIDATION | 1 |
如果跳过验证,并且连接字符串或内容共享无效,该应用将无法正常启动。 在这种情况下,函数将返回 HTTP 500 错误。 有关详细信息,请参阅排查错误:“无法访问 Azure Functions 运行时”
WEBSITE_SLOT_NAME
只读。 当前部署槽位的名称。 生产槽的名称为 Production
。
键 | 示例值 |
---|---|
WEBSITE_SLOT_NAME | Production |
WEBSITE_TIME_ZONE
允许为函数应用设置时区。
键 | (OS) | 示例值 |
---|---|---|
WEBSITE_TIME_ZONE | Windows | Eastern Standard Time |
WEBSITE_TIME_ZONE | Linux | America/New_York |
CRON 表达式使用的默认时区为协调世界时 (UTC)。 若要让 CRON 表达式基于其他时区,请为你的函数应用创建一个名为 WEBSITE_TIME_ZONE
的应用设置。
此设置的值取决于运行函数应用的操作系统和计划。
操作系统 | 计划 | 值 |
---|---|---|
Windows | All | 将该值设置为所需时区的名称,由 Windows 命令 tzutil.exe /L 给定的每个对的第二行指定 |
注意
Linux 消耗计划目前不支持 WEBSITE_TIME_ZONE
。
例如,美国东部时间(由 Eastern Standard Time
(Windows) 或 America/New_York
(Linux) 表示)当前在标准时间中使用 UTC-05:00,在夏令时中使用 UTC-04:00。 若要使计时器触发器每天在东部时间上午 10:00 触发,请为函数应用创建一个名为 WEBSITE_TIME_ZONE
的应用设置并将值设置为 Eastern Standard Time
(Windows) 或 America/New_York
(Linux),然后使用以下 NCRONTAB 表达式:
"0 0 10 * * *"
使用 WEBSITE_TIME_ZONE
时,时间将针对特定时区中的时间更改进行调整,包括夏令时和标准时间的更改。
WEBSITE_USE_PLACEHOLDER
指示在消耗计划上运行时,是否使用特定的冷启动优化。 设置为 0
可在消耗计划上禁用冷启动优化。
键 | 示例值 |
---|---|
WEBSITE_USE_PLACEHOLDER | 1 |
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED
指示在消耗计划上运行 .NET 独立工作进程函数时是否使用特定的冷启动优化。 设置为 0
可在消耗计划上禁用冷启动优化。
键 | 示例值 |
---|---|
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED | 1 |
WEBSITE_VNET_ROUTE_ALL
重要
WEBSITE_VNET_ROUTE_ALL 是旧版应用设置,它已被替换为 vnetRouteAllEnabled 站点设置。
指示是否通过虚拟网络路由应用的所有出站流量。 设置值 1
指示所有应用程序流量都通过虚拟网络进行路由。 在弹性高级和专用托管计划中配置区域虚拟网络集成时,需要使用此设置。 使用虚拟网络 NAT 网关定义静态出站 IP 地址时,也可以使用此设置。
键 | 示例值 |
---|---|
WEBSITE_VNET_ROUTE_ALL | 1 |
WEBSITES_ENABLE_APP_SERVICE_STORAGE
指示 /home
目录是否跨缩放实例共享,默认值为 true
。 在容器中部署函数应用时,应将设置为 false
。
应用服务网站设置
某些配置必须在应用服务级别作为站点设置进行维护,例如语言版本。 这些设置在门户中通过使用 REST API、Azure CLI 或 Azure PowerShell 进行设置。 以下是可能需要的站点设置,具体取决于运行时语言、OS 和版本:
alwaysOn
在专用(应用服务)计划中运行的函数应用中,Functions 运行时在几分钟不活动后进入空闲状态,此时只有对 HTTP 触发器的请求才会唤醒函数应用。 若要确保非 HTTP 触发的函数正常运行(包括计时器触发器函数),请将 alwaysOn
站点设置设置为值 true
,从而为函数应用启用 Always On。
functionsRuntimeAdminIsolationEnabled
确定函数应用中的内置管理员 (/admin
) 终结点是否可以访问。 如果设置为 false
(默认值),应用允许对 /admin
下终结点的请求,前提是这些请求在请求中提供了主密钥。 设置为 true
时,即使有主密钥也无法访问 /admin
终结点。
不能为 Linux 消耗 SKU 上运行的应用设置此属性,也不能为在 Azure Functions 版本 1.x 上运行的应用设置此属性。 如果使用版本 1.x,则必须先迁移到版本 4.x。
linuxFxVersion
对于在 Linux 上运行的函数应用,linuxFxVersion
指示特定于语言的工作进程的语言和版本。 此信息与 FUNCTIONS_EXTENSION_VERSION
一起用于确定安装了哪个特定的 Linux 容器映像来运行函数应用。 此设置可设置为预定义值或自定义映像 URI。
创建 Linux 函数应用时,系统会为你设置此值。 对于 ARM 模板和 Bicep 部署以及某些升级场景,你可能需要设置该值。
有效的 linuxFxVersion 值
可以使用以下 Azure CLI 命令根据支持的 Functions 运行时版本查看当前 linuxFxVersion
值的表:
az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table
上述命令要求升级到 Azure CLI 版本 2.40。
自定义映像
为函数应用创建和维护自定义 Linux 容器时,linuxFxVersion
值改为采用格式 DOCKER|<IMAGE_URI>
,如以下示例所示:
linuxFxVersion = "DOCKER|contoso.com/azurefunctionsimage:v1.0.0"
这表示已部署的容器的注册表源。 有关详细信息,请参阅使用容器和 Azure Functions。
重要
创建自己的容器时,需要将容器的基础映像更新为受支持的最新基础映像。 Azure Functions 支持的基映像特定于语言,可在 Azure Functions 基础映像存储库中找到。
Functions 团队致力于发布这些基础映像的每月更新。 定期更新包括 Functions 运行时和语言的最新次要版本更新和安全修补程序。 对于容器,应定期更新 Dockerfile 中的基础映像,重新生成并重新部署容器的更新版本。
netFrameworkVersion
为 C# 函数设置特定的 .NET 版本。 有关详细信息,请参阅在 Azure 中更新函数应用。
powerShellVersion
设置函数运行的特定 PowerShell 版本。 有关详细信息,请参阅更改 PowerShell 脚本。
在本地运行时,请改用 local.settings.json 文件中的 FUNCTIONS_WORKER_RUNTIME_VERSION
设置。
vnetContentShareEnabled
在高级计划中运行的应用使用文件共享来存储内容。 此内容共享的名称存储在 WEBSITE_CONTENTSHARE
应用设置中,其连接字符串存储在 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
中。 若要通过虚拟网络路由函数应用与内容共享之间的流量,还必须将 vnetContentShareEnabled
设置为 true
。 在弹性高级和专用托管计划中将存储帐户限制为虚拟网络时,需要启用此站点属性。
注意
路由到同一计划中多个函数应用共享的存储帐户中的内容共享时,请务必小心。 有关详细信息,请参阅“存储注意事项”一文中的通过虚拟网络实现的一致路由。
此站点属性替换旧的 WEBSITE_CONTENTOVERVNET
设置。
vnetImagePullEnabled
Functions 支持在 Linux 容器中运行的函数应用。 若要从虚拟网络内的容器注册表进行连接和拉取,必须将 vnetImagePullEnabled
设置为 true
。 弹性高级和专用托管计划支持此站点属性。 弹性消耗计划不依赖于站点属性或应用设置来配置网络。 有关详细信息,请参阅“Flex Consumption 计划弃用”。
vnetRouteAllEnabled
指示是否通过虚拟网络路由应用的所有出站流量。 设置值 true
指示所有应用程序流量都通过虚拟网络进行路由。 在弹性高级和专用计划中配置区域虚拟网络集成时使用此设置。 使用虚拟网络 NAT 网关定义静态出站 IP 地址时,也可以使用此设置。 有关详细信息,请参阅配置应用程序路由。
此站点设置替换了旧版 WEBSITE_VNET_ROUTE_ALL 设置。
Flex 消耗计划弃用
在 Flex 消耗计划中,这些站点属性和应用程序设置已弃用,不应在创建函数应用资源时使用:
设置/属性 | 原因 |
---|---|
ENABLE_ORYX_BUILD |
在 Flex Consumption 中部署时替换为 remoteBuild 参数 |
FUNCTIONS_EXTENSION_VERSION |
应用设置由后端设置。 可以忽略值 ~1。 |
FUNCTIONS_WORKER_RUNTIME |
在 properties.functionAppConfig.runtime 中替换为 name |
FUNCTIONS_WORKER_RUNTIME_VERSION |
在 properties.functionAppConfig.runtime 中替换为 version |
FUNCTIONS_MAX_HTTP_CONCURRENCY |
替换为缩放和并发的触发器部分 |
FUNCTIONS_WORKER_PROCESS_COUNT |
设置无效 |
FUNCTIONS_WORKER_DYNAMIC_CONCURRENCY_ENABLED |
设置无效 |
SCM_DO_BUILD_DURING_DEPLOYMENT |
在 Flex Consumption 中部署时替换为 remoteBuild 参数 |
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING |
替换为 functionAppConfig 的部署部分 |
WEBSITE_CONTENTOVERVNET |
未用于 Flex Consumption 中的网络 |
WEBSITE_CONTENTSHARE |
替换为 functionAppConfig 的部署部分 |
WEBSITE_DNS_SERVER |
DNS 继承自 Flex 中的集成 VNet |
WEBSITE_NODE_DEFAULT_VERSION |
在 properties.functionAppConfig.runtime 中替换为 version |
WEBSITE_RUN_FROM_PACKAGE |
未用于 Flex Consumption 中的部署 |
WEBSITE_SKIP_CONTENTSHARE_VALIDATION |
Flex Consumption 中未使用内容共享 |
WEBSITE_VNET_ROUTE_ALL |
未用于 Flex Consumption 中的网络 |
properties.alwaysOn |
无效 |
properties.containerSize |
重命名为 instanceMemoryMB |
properties.ftpsState |
不支持 FTPS |
properties.isReserved |
无效 |
properties.IsXenon |
无效 |
properties.javaVersion |
在 properties.functionAppConfig.runtime 中替换为 version |
properties.LinuxFxVersion |
替换为 properties.functionAppConfig.runtime |
properties.netFrameworkVersion |
在 properties.functionAppConfig.runtime 中替换为 version |
properties.powerShellVersion |
在 properties.functionAppConfig.runtime 中替换为 version |
properties.siteConfig.functionAppScaleLimit |
重命名为 maximumInstanceCount |
properties.siteConfig.preWarmedInstanceCount |
重命名为 alwaysReadyInstances |
properties.use32BitWorkerProcess |
不支持 32 位 |
properties.vnetBackupRestoreEnabled |
未用于 Flex Consumption 中的网络 |
properties.vnetContentShareEnabled |
未用于 Flex Consumption 中的网络 |
properties.vnetImagePullEnabled |
未用于 Flex Consumption 中的网络 |
properties.vnetRouteAllEnabled |
未用于 Flex Consumption 中的网络 |
properties.windowsFxVersion |
无效 |