Azure Functions 的應用程式設定參考

函式應用程式中的應用程式設定包含會影響該函式應用程式所有函式的組態選項。 這些設定會以環境變數的形式存取。 本文列出函式應用程式中可用的應用程式設定。

有數種方式可供您新增、更新和刪除函式應用程式設定:

對函式應用程式設定的變更需要將函式應用程式重新啟動。

在本文中,會截斷 連接字串 值的範例,以取得可讀性。

應用程式設定考慮

使用應用程式設定時,您應該注意下列考慮:

  • 對函式應用程式設定的變更需要將函式應用程式重新啟動。

  • 在設定名稱中,雙底線 (__) 和分號 (:) 會被視為保留值。 雙底線會在 Windows 和 Linux 上解譯為階層分隔符,而冒號只會在 Linux 上以相同方式解譯。 例如,此設定 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 會在 App Service 上執行,因此也支援其他應用程式設定。 如需詳細資訊,請參閱 Azure App 服務 中的環境變數和應用程式設定。

  • 有些案例也要求您使用App Service 網站設定中記載的 設定

  • 變更任何 只讀的 App Service 應用程式設定 ,可以將函式應用程式置於沒有回應的狀態。

  • 使用 REST API 更新應用程式設定時,請小心,包括 ARM 範本。 由於這些 API 會取代現有的應用程式設定,因此在使用 REST API 或 ARM 範本新增或修改設定時,您必須包含所有現有的設定。 可能的話,請使用 Azure CLI 或 Azure PowerShell 以程式設計方式使用應用程式設定。 如需詳細資訊,請參閱 使用應用程式設定

APPINSIGHTS_INSTRUMENTATIONKEY

Application Insights 的檢測密鑰。 請勿同時使用 APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRING。 可能的話,請使用 APPLICATIONINSIGHTS_CONNECTION_STRING。 當 Application Insights 在主權雲端中執行時,您必須使用 APPLICATIONINSIGHTS_CONNECTION_STRING。 如需詳細資訊,請參閱 如何設定 Azure Functions 的監視。

機碼 範例值
APPINSIGHTS_INSTRUMENTATIONKEY 55555555-af77-484b-9032-64f83bb83bb

請勿同時使用 APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRINGAPPLICATIONINSIGHTS_CONNECTION_STRING建議使用 。

注意

針對檢測金鑰擷取的支援將在 2025 年 3 月 31 日結束。 檢測金鑰擷取將會繼續運作,但我們不再提供該功能的更新或支援。 轉換至連接字串以利用新功能

APPLICATIONINSIGHTS_CONNECTION_STRING

Application Insights 的 連接字串。 請勿同時使用 APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRING。 雖然在所有情況下都建議使用 APPLICATIONINSIGHTS_CONNECTION_STRING ,但在下列案例中是必要的:

  • 當您的函式應用程式需要使用 連接字串 支援的新增自定義專案時。
  • 當您的 Application Insights 實例在主權雲端中執行時,需要自定義端點。

如需詳細資訊,請參閱連接字串

機碼 範例值
APPLICATIONINSIGHTS_CONNECTION_STRING InstrumentationKey=...

AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL

重要

Azure Functions Proxy 是 Azure Functions 執行階段 1.x 版到 3.x 版的舊版功能。 如需 4.x 版舊版支援的詳細資訊,請參閱 Functions Proxy

根據預設,Functions Proxy 會使用快捷方式,將 API 呼叫從 Proxy 直接傳送至相同函式應用程式中的函式。 使用這個快捷方式,而不是建立新的 HTTP 要求。 此設定可讓您停用該快捷方式行為。

機碼 Description
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 Proxy 是 Azure Functions 執行階段 1.x 版到 3.x 版的舊版功能。 如需 4.x 版舊版支援的詳細資訊,請參閱 Functions Proxy

此設定可控制字元 %2F 是否在路由參數中插入後端URL時,將字元譯碼為斜線。

機碼 Description
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,URL example.com/api%2ftest 會解析為 example.com/api/testtrue 根據預設,URL 會維持不變。example.com/test%2fapi 如需詳細資訊,請參閱 函式 Proxy

AZURE_FUNCTIONS_ENVIRONMENT

在 Azure 中執行時,設定函式應用程式的運行時間 裝載環境 。 這個值會在初始化期間讀取,而且運行時間只接受這些值:

Description
Production 表示生產環境,其記錄和完整效能優化會降低。 如果未 AZURE_FUNCTIONS_ENVIRONMENT 設定或設定為不支援的值,這是預設值。
Staging 表示預備環境,例如在預備位置執行時。
Development 開發 環境支援 更詳細的記錄和其他降低的效能優化。 Azure Functions Core Tools 會在本機電腦上執行時設定 AZURE_FUNCTIONS_ENVIRONMENTDevelopment 。 無法在local.settings.json檔案中覆寫此設定。

當您需要將 Azure 中的執行時間環境變更為 以外的專案時,請使用此設定,而不是 ASPNETCORE_ENVIRONMENTProduction。 如需詳細資訊,請參閱 環境型啟動類別和方法

此設定不適用於 Functions 運行時間 1.x 版。

AzureFunctionsJobHost__*

在 2.x 版和更新版本的 Functions 執行時間中,應用程式設定可以覆寫 目前環境中的host.json 設定。 這些覆寫會以名為 AzureFunctionsJobHost__path__to__setting的應用程式設定表示。 如需詳細資訊,請參閱覆寫 host.json 值

AzureFunctionsWebHost__hostid

設定指定函式應用程式的主機標識碼,這應該是唯一標識符。 這個設定會覆寫應用程式自動產生的主機標識碼。 只有在您需要防止共用相同儲存體帳戶的函式應用程式之間發生主機標識元衝突時,才使用此設定。

主機標識碼必須符合下列需求:

  • 介於 1 到 32 個字元之間
  • 只包含小寫字母、數位和虛線
  • 不是以虛線開頭或結尾
  • 不包含連續虛線

產生標識符的簡單方式是取得 GUID、移除破折號,並將其設為小寫,例如將 GUID 1835D7B5-5C98-4790-815D-072CC94C6F71 轉換成 值 1835d7b55c984790815d072cc94c6f71

機碼 範例值
AzureFunctionsWebHost__hostid myuniquefunctionappname123456789

如需詳細資訊,請參閱主機識別碼考量

AzureWebJobsDashboard

此設定已被取代,只有在 Azure Functions 運行時間 1.x 版上執行時才支援。

選擇性記憶體帳戶 連接字串 用來儲存記錄,並在入口網站的 [監視] 索引標籤中顯示記錄。 記憶體帳戶必須是支援 Blob、佇列和數據表的一般用途帳戶。 若要深入瞭解,請參閱 儲存體 帳戶需求

機碼 範例值
AzureWebJobsDashboard DefaultEndpointsProtocol=https;AccountName=...

AzureWebJobsDisableHomepage

的值 true 會停用函式應用程式根 URL 顯示的預設登陸頁面。 預設值是 false

機碼 範例值
AzureWebJobsDisableHomepage true

當省略此應用程式設定或設定為 false時,會顯示類似下列範例的頁面,以回應 URL <functionappname>.azurewebsites.net

函式應用程式登陸頁面

AzureWebJobsDotNetReleaseCompilation

true 表示在編譯 .NET 程式代碼時使用發行模式; false 表示使用偵錯模式。 預設值為 true

機碼 範例值
AzureWebJobsDotNetReleaseCompilation true

AzureWebJobsFeatureFlags

要啟用的 Beta 功能逗號分隔清單。 這些旗標所啟用的 Beta 功能尚未就緒,但在上線之前,可以啟用實驗性用途。

機碼 範例值
AzureWebJobsFeatureFlags feature1,feature2,EnableProxies

將 新增EnableProxies至此清單,以在規劃移轉至 Azure API 管理 時,於 Functions 運行時間 4.x 版上重新啟用 Proxy。 如需詳細資訊,請參閱 在 Functions v4.x 中重新啟用 Proxy。

AzureWebJobsKubernetesSecretName

指出用來儲存金鑰的 Kubernetes 秘密資源。 只有在 Kubernetes 中執行時才支援。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekubernetes。 未設定時 AzureWebJobsKubernetesSecretName ,會將存放庫視為唯讀。 在此情況下,必須先產生值,才能進行部署。 Azure Functions Core Tools 會在部署至 Kubernetes 時自動產生這些值。

機碼 範例值
AzureWebJobsKubernetesSecretName <SECRETS_RESOURCE>

若要深入瞭解,請參閱 秘密存放庫

AzureWebJobsSecretStorageKeyVaultClientId

使用者指派受控識別的用戶端標識碼,或用來存取儲存密鑰之保存庫的應用程式註冊。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekeyvault。 4.x 版和更新版本的 Functions 運行時間支援。

機碼 範例值
AzureWebJobsSecretStorageKeyVaultClientId <CLIENT_ID>

若要深入瞭解,請參閱 秘密存放庫

AzureWebJobsSecretStorageKeyVaultClientSecret

使用者指派受控識別的用戶端標識碼或用來存取儲存金鑰之保存庫的應用程式註冊秘密。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekeyvault。 4.x 版和更新版本的 Functions 運行時間支援。

機碼 範例值
AzureWebJobsSecretStorageKeyVaultClientSecret <CLIENT_SECRET>

若要深入瞭解,請參閱 秘密存放庫

AzureWebJobsSecretStorageKeyVaultName

用來儲存金鑰的金鑰保存庫實例名稱。 只有 Functions 執行時間 3.x 版才支援此設定。 針對 4.x 版,請改用 AzureWebJobsSecretStorageKeyVaultUri。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekeyvault

保存庫必須具有對應至裝載資源系統指派受控識別的存取原則。 存取原則應授與身分識別下列秘密許可權: GetSetListDelete
當您的函式在本機執行時,會使用開發人員身分識別,且設定必須位於local.settings.json檔案

機碼 範例值
AzureWebJobsSecretStorageKeyVaultName <VAULT_NAME>

若要深入瞭解,請參閱 秘密存放庫

AzureWebJobsSecretStorageKeyVaultTenantId

用來存取儲存金鑰之保存庫之應用程式註冊的租用戶識別碼。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekeyvault。 4.x 版和更新版本的 Functions 運行時間支援。 若要深入瞭解,請參閱 秘密存放庫

機碼 範例值
AzureWebJobsSecretStorageKeyVaultTenantId <TENANT_ID>

AzureWebJobsSecretStorageKeyVaultUri

用來儲存金鑰的金鑰保存庫實例 URI。 4.x 版和更新版本的 Functions 運行時間支援。 這是針對金鑰記憶體使用金鑰保存庫實例的建議設定。 在這裡設定需要您會設定 AzureWebJobsSecretStorageTypekeyvault

此值AzureWebJobsSecretStorageKeyVaultUri應該是 [金鑰保存庫 概觀] 索引標籤中顯示的儲存庫 URI 完整值,包括 https://

保存庫必須具有對應至裝載資源系統指派受控識別的存取原則。 存取原則應授與身分識別下列秘密許可權: GetSetListDelete
當您的函式在本機執行時,會使用開發人員身分識別,且設定必須位於local.settings.json檔案

機碼 範例值
AzureWebJobsSecretStorageKeyVaultUri https://<VAULT_NAME>.vault.azure.net

若要深入了解,請參閱使用 Azure Functions 的 Key Vault 參考

AzureWebJobsSecret 儲存體 Sas

用於金鑰記憶體的第二個記憶體帳戶的 Blob 儲存體 SAS URL。 根據預設,Functions 會使用 中設定的 AzureWebJobsStorage帳戶。 使用此秘密記憶體選項時,請確定 AzureWebJobsSecretStorageType 未明確設定或設定為 blob。 若要深入瞭解,請參閱 秘密存放庫

機碼 範例值
AzureWebJobsSecret 儲存體 Sas <BLOB_SAS_URL>

AzureWebJobsSecret 儲存體 Type

指定要用於金鑰記憶體的存放庫或提供者。 密鑰一律會先加密,再使用函式應用程式唯一的秘密來儲存。

機碼 Description
AzureWebJobsSecret 儲存體 Type blob 金鑰會儲存在設定所提供的 AzureWebJobsStorage 帳戶中的 Blob 記憶體容器中。 Blob 記憶體是未設定時 AzureWebJobsSecretStorageType 的預設行為。
若要指定不同的記憶體帳戶,請使用 AzureWebJobsSecretStorageSas 設定來指出第二個記憶體帳戶的SAS URL。
AzureWebJobsSecret 儲存體 Type files 金鑰會儲存在檔案系統上。 這是 Functions v1.x 的預設行為。
AzureWebJobsSecret 儲存體 Type keyvault 金鑰會儲存在 所 AzureWebJobsSecretStorageKeyVaultName設定的金鑰保存庫實例中。
AzureWebJobsSecret 儲存體 Type kubernetes 只有在 Kubernetes 中執行 Functions 執行階段時才支援。 未設定時 AzureWebJobsKubernetesSecretName ,會將存放庫視為唯讀。 在此情況下,必須先產生值,才能進行部署。 Azure Functions Core Tools 會在部署至 Kubernetes 時自動產生這些值。

若要深入瞭解,請參閱 秘密存放庫

AzureWebJobsStorage

指定 Functions 執行時間用於一般作業之 Azure 儲存體 帳戶的 連接字串。 Functions 使用此儲存體帳戶的一些用法包括密鑰管理、定時器觸發程式和事件中樞檢查點。 記憶體帳戶必須是支援 Blob、佇列和數據表的一般用途帳戶。 如需詳細資訊,請參閱 儲存體 帳戶需求

機碼 範例值
AzureWebJobsStorage DefaultEndpointsProtocol=https;AccountName=...

您可以使用此記憶體帳戶的身分識別型連線,而不是 連接字串。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體

AzureWebJobs 儲存體__accountName

使用身分識別型記憶體連線時,設定記憶體帳戶的帳戶名稱,而不是使用中的 AzureWebJobsStorage連接字串。 此語法對其他身分識別型連線而言是唯 AzureWebJobsStorage 一的,無法用於。

機碼 範例值
AzureWebJobs 儲存體__accountName <STORAGE_ACCOUNT_NAME>

對於主權雲端,或使用自定義 DNS 時,您必須改用服務特定的 AzureWebJobsStorage__*ServiceUri 設定。

AzureWebJobsStorage__blobServiceUri

使用身分識別型記憶體連線時,設定記憶體帳戶 Blob 服務的數據平面 URI。

機碼 範例值
AzureWebJobsStorage__blobServiceUri https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net

使用此設定,而不是 AzureWebJobsStorage__accountName 在主權雲端中使用,或使用自定義 DNS 時。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體

AzureWebJobsStorage__queueServiceUri

使用身分識別型記憶體連線時,設定記憶體帳戶佇列服務的數據平面 URI。

機碼 範例值
AzureWebJobsStorage__queueServiceUri https://<STORAGE_ACCOUNT_NAME>.queue.core.windows.net

使用此設定,而不是 AzureWebJobsStorage__accountName 在主權雲端中使用,或使用自定義 DNS 時。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體

AzureWebJobsStorage__tableServiceUri

使用身分識別型記憶體連線時,設定記憶體帳戶之數據表服務的數據平面 URI。

機碼 範例值
AzureWebJobsStorage__tableServiceUri https://<STORAGE_ACCOUNT_NAME>.table.core.windows.net

使用此設定,而不是 AzureWebJobsStorage__accountName 在主權雲端中使用,或使用自定義 DNS 時。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體

AzureWebJobs_TypeScriptPath

用於 TypeScript 之編譯程式的路徑。 可讓您視需要覆寫預設值。

機碼 範例值
AzureWebJobs_TypeScriptPath %HOME%\typescript

DOCKER_REGISTRY_SERVER_PASSWORD

指出用來存取私人容器登錄的密碼。 只有在從私人容器登錄部署容器化函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App 服務 中的環境變數和應用程式設定。

DOCKER_REGISTRY_SERVER_URL

指出私人容器登錄的 URL。 只有在從私人容器登錄部署容器化函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App 服務 中的環境變數和應用程式設定。

DOCKER_REGISTRY_SERVER_USERNAME

指出用來存取私人容器登錄的帳戶。 只有在從私人容器登錄部署容器化函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App 服務 中的環境變數和應用程式設定。

DOCKER_SHM_SIZE

當 Python 背景工作角色使用共用記憶體時,設定共用記憶體大小(以位元組為單位)。 若要深入瞭解,請參閱 共用記憶體

機碼 範例值
DOCKER_SHM_SIZE 268435456

上述值會設定 ~256 MB 的共用記憶體大小。

FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED需要將 設定為 1

ENABLE_ORYX_BUILD

指出 Oryx 建置系統是否在部署期間使用。 ENABLE_ORYX_BUILD 在對 Linux 執行遠端建置部署時,必須設定 true 為 。 如需詳細資訊,請參閱 遠端建置

機碼 範例值
ENABLE_ORYX_BUILD true

FUNCTION_APP_EDIT_MODE

指出您是否能夠在 Azure 入口網站 中編輯函式應用程式。 有效值為 readwritereadonly

機碼 範例值
FUNCTION_APP_EDIT_MODE readonly

此值是由運行時間根據函式應用程式的語言堆疊和部署狀態來設定。 如需詳細資訊,請參閱 Azure 入口網站中的開發限制

FUNCTIONS_EXTENSION_VERSION

裝載函式應用程式的 Functions 執行時間版本。 具有主要版本的Tilde (~) 表示使用該主要版本的最新版本 (例如, ~3)。 當相同主要版本的新版本可用時,它們會自動安裝在函式應用程式中。 若要將應用程式釘選到特定版本,請使用完整版本號碼 (例如 , 3.0.12345)。 預設值為 ~3。 的值 ~1 會將您的應用程式釘選到運行時間 1.x 版。 如需詳細資訊,請參閱 Azure Functions 執行階段版本概觀。 值 ~4 表示您的應用程式會在運行時間 4.x 版上執行。

機碼 範例值
FUNCTIONS_EXTENSION_VERSION ~4

支援下列主要執行時間版本值:

執行階段目標 註解
~4 4.x 建議需求
~3 3.x 不再支援
~2 2.x 不再支援
~1 1.x 支援將於 2026 年 9 月 14 日結束

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
機碼 Description
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR true 封鎖進入點錯誤,並將其記錄在 Application Insights 中。
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR false 忽略進入點錯誤,不要將它們記錄在 Application Insights 中。

FUNCTIONS_V2_COMPATIBILITY_MODE

重要

不再支援此設定。 它原本是為了針對以 v2.x 運行時間為目標的應用程式啟用短期因應措施,以在仍然支援 v3.x 運行時間時改為在 v3.x 運行時間上執行。 除了在 1.x 版上執行的舊版應用程式以外,所有函式應用程式都必須在 Functions 運行時間 4.x 版上執行: FUNCTIONS_EXTENSION_VERSION=~4。 如需詳細資訊,請參閱 Azure Functions 執行階段版本概觀

FUNCTIONS_REQUEST_BODY_SIZE_LIMIT

覆寫傳送至 HTTP 端點的要求主體大小的預設限制。 此值是以位元組為單位,預設要求大小上限為 104857600 個字節。

機碼 範例值
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT 250000000

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函式的Java虛擬機(JVM)。 在取用方案上執行時,請改用 languageWorkers__java__arguments。 如需詳細資訊,請參閱 自定義 JVM

languageWorkers__java__arguments

用來自定義在取用方案執行時用來執行 Java 函式的 Java 虛擬機 (JVM)。 此設定會延長在使用量方案中執行之 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

若要深入瞭解,請參閱 Python 開發人員參考中的自定義--index-url相依性檔及使用pip

PIP_EXTRA_INDEX_URL

這個設定的值表示 Python 應用程式自訂套件的額外索引 URL,除了 --index-url之外,也會使用 。 當您需要使用額外的套件索引中找到的自定義相依性來執行遠端組建時,請使用此設定。 應該遵循與 --index-url相同的規則。

機碼 範例值
PIP_EXTRA_INDEX_URL http://my.custom.package.repo/simple

若要深入瞭解,請參閱 Python 開發人員參考中的 和 自定義相依性--extra-index-urlpip

專案

持續 部署 設定,告知 Kudu 部署服務連線存放庫中的資料夾,以定位可部署的專案。

機碼 範例值
專案 WebProject/WebProject.csproj

PYTHON_ISOLATE_WORKER_DEPENDENCIES

組態是 Python 函式應用程式特有的。 它會定義模組載入順序的優先順序。 根據預設,此值會設定為 0

機碼 Description
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 中定義的 Python 背景工作角色擴充 功能。 它可讓您的函式應用程式存取第三方套件所提供的新功能。 它也可以變更應用程式中函式載入和調用的行為。 請確定您選擇的擴充功能值得信任,因為您承擔使用它的風險。 Azure Functions 不會提供任何延伸模組的明示擔保。 如需如何使用擴充功能,請流覽延伸模組的手動頁面或自述檔。根據預設,此值會設定為 0

機碼 Description
PYTHON_ENABLE_WORKER_EXTENSIONS 0 停用任何 Python 背景工作角色擴充功能。
PYTHON_ENABLE_WORKER_EXTENSIONS 1 允許 Python 背景工作角色從 requirements.txt載入延伸模組。

PYTHON_THREADPOOL_THREAD_COUNT

指定 Python 語言背景工作角色用來執行函式調用的線程數目上限,其預設值 1 為 Python 版本和以下版本 3.8 。 針對 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> 已傳送記錄的目的地。 有效值為 AppInsightsBlob
當您使用 AppInsights 時,請確定您的函式應用程式中已啟用 Application Insights
當您將目的地設定為 Blob 時,記錄會在名為 azure-functions-scale-controller 的 Blob 容器中建立,該容器位於 AzureWebJobsStorage 應用程式設定中的預設儲存體帳戶中。
<VERBOSITY> 指定記錄的層級。 支援的值為 NoneWarningVerbose
當設定為 Verbose 時,調整控制器會記錄背景工作計數中每次變更的原因,並針對考慮這些決策的觸發程序,記錄其相關資訊。 詳細資訊記錄包括觸發程序警告,以及觸發程序在調整控制器執行前後所使用的雜湊。

提示

請記住,如果您讓調整控制器記錄保持啟用狀態,您監視函式應用程式的潛在成本就會受到影響。 請考慮在您收集到足夠的資料前啟用記錄,並在資料足夠讓您了解調整控制器的行為之後,將其停用。

SCM_DO_BUILD_DURING_DEPLOYMENT

控制部署期間的遠端建置行為。 當 設定為 trueSCM_DO_BUILD_DURING_DEPLOYMENT,專案會在部署期間從遠端建置。

機碼 範例值
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

1 可讓您的函式應用程式在記憶體帳戶限制為虛擬網路時進行調整。 您應該在將記憶體帳戶限制為虛擬網路時啟用此設定。 只有在使用 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING時才需要 。 若要深入瞭解,請參閱 將記憶體帳戶限制為虛擬網路

機碼 範例值
WEBSITE_CONTENTOVERVNET 1

支援 進階版專用(App Service)方案(標準和更高版本)。 在取用方案執行時不支援。

WEBSITE_CONTENTSHARE

Functions 用來儲存函式應用程式程式代碼和組態檔的檔案共享名稱。 事件驅動調整計劃需要此內容。 與搭配 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING使用。 預設值是運行時間所產生的唯一字串,以函式應用程式名稱開頭。 如需詳細資訊,請參閱 儲存體 帳戶連線設定

機碼 範例值
WEBSITE_CONTENTSHARE functionapp091999e2

針對 Windows 和 Linux 上的取用和 進階版 方案應用程式,需要此設定。 專用方案應用程式不需要此應用程式,這些應用程式並非由 Functions 動態調整。

建立函式應用程式時會建立共用。 變更或移除此設定可能會導致函式應用程式無法啟動。 若要深入瞭解,請參閱 此疑難解答文章

使用 Azure Resource Manager 範本或 Bicep 檔案在部署期間建立函式應用程式時,適用下列考慮:

  • 當您未為main函式應用程式或任何位置中的應用程式設定值時,會產生唯一 WEBSITE_CONTENTSHARE 的共用值。 未設定 WEBSITE_CONTENTSHAREARM 範本部署的建議方法
  • 在某些情況下,您必須將 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 壓縮。 當 設定為 1WEBSITE_ENABLE_BROTLI_ENCODING,會使用 Brotli 編碼,否則會使用 gzip 編碼。

WEBSITE_FUNCTIONS_ARMCACHE_ENABLED

使用 Azure Resource Manager (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版本。 您應該使用Tilde (~) 讓運行時間使用目標主要版本的最新可用版本。 例如,當設定為 ~18時,會使用最新版本的 Node.js 18。 當主要版本以 tilde 為目標時,您不需要手動更新次要版本。

機碼 範例值
WEBSITE_NODE_DEFAULT_VERSION ~18

WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS

在 進階版 方案中執行的函式應用程式上執行位置交換時,當應用程式所使用的專用記憶體帳戶受到網路限制時,交換可能會失敗。 此失敗是由 Functions 和 App Service 共用的舊版 應用程式記錄功能所造成。 此設定會覆寫舊版記錄功能,並允許交換發生。

機碼 範例值
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 資料夾中。 當您使用已啟用的 zip 部署 WEBSITE_RUN_FROM_PACKAGE 時,套件會自動上傳至此位置。 在預覽版中,此設定名為 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 全部 將值設定為所需時區的名稱,如 Windows 命令所指定之每個配對的第二行所指定 tzutil.exe /L
Linux 進階
專用
將值設定為所需時區的名稱,如 tz 資料庫中所示

注意

WEBSITE_TIME_ZONE 在取用方案中在 Linux 上執行 時,目前不支援 和 TZ 。 在此情況下,設定 WEBSITE_TIME_ZONETZ 可以建立 SSL 相關問題,並導致計量停止為您的應用程式運作。

例如,美國東部時間(以 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 設定為 。 d

App Service 網站設定

某些組態必須在 App Service 層級維護,例如網站設定,例如語言版本。 這些設定是在入口網站、使用 REST API 或使用 Azure CLI 或 Azure PowerShell 來管理。 以下是可能需要的月臺設定,視您的運行時間語言、OS 和版本而定:

alwaysOn

在專用 (App Service) 方案中執行的函式應用程式上,函式運行時間會在閑置幾分鐘後閑置,而該函式只會要求 HTTP 觸發程式喚醒您的函式。 若要確定您的非 HTTP 觸發函式正確執行,包括定時器觸發程式,請將月臺設定設為 alwaysOn 的值 true,為函式應用程式啟用 Always On。

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 執行階段和語言的最新次要版本更新與安全性修正。 您應該定期從最新的基底映射更新容器,並重新部署容器的更新版本。

netFrameworkVersion

設定 C# 函式的特定 .NET 版本。 如需詳細資訊,請參閱 在 Azure 中更新函式應用程式。

powerShellVersion

設定函式執行所在的特定 PowerShell 版本。 如需詳細資訊,請參閱 變更PowerShell版本

在本機執行時,您會改用 FUNCTIONS_WORKER_RUNTIME_VERSION local.settings.json 檔案中的 設定。

vnetrouteallenabled

指出是否透過虛擬網路路由傳送來自應用程式的所有輸出流量。 的設定值 1 表示所有流量都會透過虛擬網路路由傳送。 使用區域虛擬網路整合的功能時,您需要此設定。 當虛擬網路 NAT 閘道用來定義靜態輸出 IP 位址,也會使用它。 如需詳細資訊,請參閱 設定應用程式路由

此網站設定會取代舊版 WEBSITE_VNET_ROUTE_ALL 設定。

下一步

瞭解如何更新應用程式設定

請參閱 host.json 檔案中的組態設定

請參閱 App Service 應用程式的其他應用程式設定