函式應用程式中的應用程式設定所包含的設定選項,會影響該函式應用程式的所有函式。 這些設定會以環境變數的形式供系統存取。 本文列出函式應用程式中可用的應用程式設定。
有數種方式可供您新增、更新和刪除函式應用程式設定:
對函式應用程式設定的變更需要將函式應用程式重新啟動。
本文會截斷連接字串值範例以利閱讀。
Azure Functions 會使用 Azure App Service 平臺進行裝載。 您可能會在 Azure App Service 的環境變數和應用程式設定中找到一些與裝載函式應用程式相關的設定。
應用程式設定的考量
使用應用程式設定時,您應該注意以下注意事項:
變更應用程式設定會導致您的函式應用程式預設在所有裝載方案中重新啟動。 對於變更設定時的零停機部署,請使用 彈性取用方案 搭配 輪流更新作為網站更新策略。 如需其他主機方案,請參閱最佳化部署,以取得將停機時間降到最低的指引。
在設定名稱中,雙底線 (
__) 和冒號 (:) 會被視為保留值。 雙底線在 Windows 和 Linux 上都被解釋為分層分隔符。 冒號僅在 Windows 上才以相同的方式解釋。 例如,設定AzureFunctionsWebHost__hostid=somehost_123456會解譯為下列 JSON 物件:"AzureFunctionsWebHost": { "hostid": "somehost_123456" }本文只會使用在這兩種作業系統上都有支援的雙底線。 大部分支援受控識別連線的設定都使用雙底線。
在 host.json 檔案和 local.settings.json 檔案中,還有其他函數應用程式設定選項。
您可以使用應用程式設定來覆寫 host.json 設定值,而無需變更 host.json 檔案本身。 此方法適用於您需要針對特定環境設定或修改特定 host.json 設定的案例。 這種方法也可讓您變更 host.json 設定,而不需要重新發佈您的專案。 若要深入了解,請參閱 host.json 參考文章。
本文會記載與您的函式應用程式最相關的設定。 因為 Azure Functions 在 App Service 上執行,因此也支援其他應用程式設定。 如需詳細資訊,請參閱 Azure App Service 中的環境變數和應用程式設定。
在某些案例中,您還必須使用 App Service 網站設定中所記載的設定。
變更任何「唯讀」App Service 應用程式設定都會讓函式應用程式進入沒有回應的狀態。
使用 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 的監視。
| Key | 範例值 |
|---|---|
| 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 工作區時,請使用此設定。 如需詳細資訊,請參閱 Application Insights 的 Microsoft Entra 驗證。
當您使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING 時,您設定的特定值取決於受控識別的類型:
| 受管理的識別 | 設定值 |
|---|---|
| System-assigned | Authorization=AAD |
| User-assigned | Authorization=AAD;ClientId=<USER_ASSIGNED_CLIENT_ID> |
此驗證需求會套用至來自 Functions 主機、快照偵錯工具、分析工具及任何特定語言代理程式的連線。 若要使用此設定,函式應用程式必須已可使用受控識別,且具有相當於監視計量發行者的指派角色。
Note
使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING 連線到使用 Microsoft Entra 驗證的 Application Insights 時,您也應停用 Application Insights 的本機驗證 (部分機器翻譯)。 此設定需要 Microsoft Entra 驗證,才能將遙測資料擷取到您的工作區。
APPLICATIONINSIGHTS_CONNECTION_STRING
Application Insights 的連接字串。 請勿同時使用 APPINSIGHTS_INSTRUMENTATIONKEY 和 APPLICATIONINSIGHTS_CONNECTION_STRING。 我們建議在所有情況下都使用 APPLICATIONINSIGHTS_CONNECTION_STRING。 在下列情況下,這是必要條件:
- 當您的函數應用程式需要使用連接字串支援新增的自訂項目時
- 當您的 Application Insights 執行個體在主權雲端中執行時 (這會需要自訂端點)
如需詳細資訊,請參閱連接字串。
| Key | 範例值 |
|---|---|
| APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
若要使用 Microsoft Entra 驗證連線到 Application Insights,您應該使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING。
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL
Important
Azure Functions Proxy 是 Azure Functions 執行階段 1.x 至 3.x 版 的一項功能。 如需詳細資訊,請參閱函式 Proxy。
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
Important
Azure Functions Proxy 是 Azure Functions 執行階段 1.x 至 3.x 版 的一項功能。 如需詳細資訊,請參閱函式 Proxy。
AZURE_FUNCTIONS_ENVIRONMENT
設定函式應用程式在 Azure 中執行時的執行階段裝載環境。 此值會在初始化期間讀取。 執行階段只接受下列值:
| Value | Description |
|---|---|
Production |
代表生產環境,有縮減的記錄和完整的效能最佳化。 此值是未設定或設定為不支援值時 AZURE_FUNCTIONS_ENVIRONMENT 的預設值。 |
Staging |
代表預備環境,例如在預備位置中執行時。 |
Development |
開發環境支援更詳細的記錄和其他縮減的效能最佳化。 Azure Functions Core Tools 在本機電腦上執行時,會將 AZURE_FUNCTIONS_ENVIRONMENT 設定為 Development。 您無法在 local.settings.json 檔案中覆寫此設定。 |
當您需要將 Azure 中的執行階段環境變更為 ASPNETCORE_ENVIRONMENT 以外的環境,請使用此設定,而非使用 Production。 如需詳細資訊,請參閱以環境為基礎的啟動類別和方法。
此設定不適用於 Functions 執行階段 1.x 版。
AzureFunctionsJobHost__*
在 2.x 版和更新版本的函式執行階段中,應用程式設定可以覆寫目前環境中的 host.json 設定。 這些覆寫會顯示為名稱 AzureFunctionsJobHost__path__to__setting 的應用程式設定。 如需詳細資訊,請參閱 覆寫 host.json 值。
AzureFunctionsWebHost__hostid
為指定的函式應用程式設定主機識別碼,這識別碼應該是唯一的。 此設定會覆寫為應用程式自動產生的主機識別碼值。 只有在您需要防止共用相同儲存體帳戶的函式應用程式之間發生主機識別碼衝突時,才使用此設定。
主機識別碼必須符合下列需求:
- 介於 1 到 32 個字元之間
- 只能包含小寫字母、數字和虛線
- 不是以虛線開頭或結尾
- 未包含連續的虛線
產生識別碼的簡單方式是取得 GUID、移除虛線並將其改成小寫,例如將 GUID 1835D7B5-5C98-4790-815D-072CC94C6F71 轉換為值 1835d7b55c984790815d072cc94c6f71。
| Key | 範例值 |
|---|---|
| AzureFunctionsWebHost__hostid | myuniquefunctionappname123456789 |
如需詳細資訊,請參閱主機識別碼考量。
AzureWebJobsDashboard
此設定已淘汰,只有在 Azure Functions 執行階段 1.x 版上執行時才受到支援。
選用的儲存體帳戶連接字串,用於儲存記錄並將它們顯示在 Azure 入口網站的 [監視器] 索引標籤中。 儲存體帳戶必須是一般用途的帳戶,支援 Blob、佇列和資料表。 若要深入了解,請參閱儲存體帳戶需求。
| Key | 範例值 |
|---|---|
| AzureWebJobsDashboard | DefaultEndpointsProtocol=https;AccountName=... |
AzureWebJobsDisableHomepage
值為 true 會停用針對函式應用程式根 URL 所顯示的預設登陸頁面。 預設值是 false。
| Key | 範例值 |
|---|---|
| AzureWebJobsDisableHomepage | true |
省略這個應用程式設定或將其設為 false 時,會顯示與下列範例類似的頁面,以回應 URL <functionappname>.azurewebsites.net。
AzureWebJobsDotNetReleaseCompilation
true 表示編譯.NET程式碼時使用 Release 模式。
false 表示使用偵錯模式。 預設值為 true。
| Key | 範例值 |
|---|---|
| AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
要啟用的搶鮮版 (Beta) 功能清單 (以逗號分隔)。 這些旗標所啟用的搶鮮版 (Beta) 功能還不適合在生產環境內使用,但在上線之前可以針對實驗使用予以啟用。
| Key | 範例值 |
|---|---|
| AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
如果您的應用程式目前有此設定,請將新的旗標新增至逗號分隔清單的結尾。
目前支援的功能旗標:
| 旗標值 | Description |
|---|---|
EnableProxies |
當您計劃移轉至 Azure API 管理時,重新啟用 Functions 執行環境 4.x 版上的代理。 如需詳細資訊,請參閱在 Functions v4.x 中重新啟用 Proxy。 |
EnableAzureMonitorTimeIsoFormat |
針對在專用 (App Service) 方案上執行的 Linux 應用程式,與 Azure 監視器記錄中啟用 ISO 8601 時間格式。 |
AzureWebJobsKubernetesSecretName
指出用於儲存金鑰的 Kubernetes 秘密資源。 僅在 Kubernetes 中執行時才支援。
| Key | 範例值 |
|---|---|
| AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
使用 Kubernetes 密碼資源時的考量:
- 您也必須將
AzureWebJobsSecretStorageType設定為kubernetes。 若未設定AzureWebJobsKubernetesSecretName,則會將存放庫視為唯讀。 在此情況下,必須在部署之前產生這些值。 - Azure Functions Core Tools 會在部署至 Kubernetes 時自動產生這些值。
- 不支援不可變的秘密,而且使用這些秘密會導致運行時錯誤。
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultClientId
使用者指派受控識別的用戶端識別碼,或用來存取儲存金鑰之保存庫的應用程式註冊。 要使用此設定,就必須將 AzureWebJobsSecretStorageType 設定為 keyvault。 於 4.x 版和更新版本的 Functions 執行階段中支援。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultClientSecret
使用者指派受控識別的用戶端識別碼秘密,或用來存取儲存金鑰之保存庫的應用程式註冊。 要使用此設定,就必須將 AzureWebJobsSecretStorageType 設定為 keyvault。 於 4.x 版和更新版本的 Functions 執行階段中支援。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultName
此設定已淘汰,只有在 Azure Functions 執行階段 3.x 版上執行時使用。
用來儲存金鑰的金鑰保存庫執行個體名稱。 此設定僅適用於不再支援的 Azure Functions 執行階段 3.x 版。 針對 4.x 版,請改用 AzureWebJobsSecretStorageKeyVaultUri。 要使用此設定,就必須將 AzureWebJobsSecretStorageType 設定為 keyvault。
保存庫具有的存取原則必須對應至裝載資源的系統指派受控識別。 存取原則應該授與身分識別下列秘密權限:Get、Set、List 和 Delete。
當您的函數在本機執行時,會使用開發人員身分識別。 設定必須位於 local.settings.json 檔案中。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultTenantId
用來存取儲存金鑰之保存庫的應用程式註冊租用者識別碼。 要使用此設定,就必須將 AzureWebJobsSecretStorageType 設定為 keyvault。 於 4.x 版和更新版本的 Functions 執行階段中支援。 若要深入了解,請參閱管理金鑰儲存體。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
用來儲存金鑰的金鑰保存庫執行個體 URI。 於 4.x 版和更新版本的 Functions 執行階段中支援。 建議使用此設定來使用機密金鑰庫進行金鑰儲存。 要使用此設定,就必須將 AzureWebJobsSecretStorageType 設定為 keyvault。
AzureWebJobsSecretStorageKeyVaultUri 值應該是 [金鑰保存庫概觀] 索引標籤中顯示的保存庫 URI 完整值,包括 https://。
保存庫具有的存取原則必須對應至裝載資源的系統指派受控識別。 存取原則應該授與身分識別下列秘密權限:Get、Set、List 和 Delete。
函式在本機執行時,會使用開發人員身分識別,而且 local.settings.json 檔案中必須有設定。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.net |
Important
透過 AzureWebJobsSecretStorageKeyVaultUri 設定,秘密不會限定於個別函式應用程式。 如果多個函式應用程式設定為使用相同的 Key Vault,它們會共用相同的秘密,可能會導致密鑰衝突或覆寫。 若要避免非預期的行為,建議您針對每個函式應用程式使用個別的 Key Vault 執行個體。
若要深入瞭解,請參閱 管理金鑰記憶體。
AzureWebJobsSecretStorageSas
用於金鑰儲存體之第二個儲存體帳戶的 Blob 儲存體 SAS URL。 在預設情況下,函式會使用 AzureWebJobsStorage 中設定的帳戶。 使用此秘密儲存體選項時,請確定 AzureWebJobsSecretStorageType 未明確設定或設為 blob。 若要深入了解,請參閱管理金鑰儲存體。
| Key | 範例值 |
|---|---|
| AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
指定要用於金鑰儲存的存放庫或提供者。 金鑰在儲存前一律會使用函數應用程式獨有的秘密來加密。
| Key | Value | Description |
|---|---|---|
| AzureWebJobsSecretStorageType | blob |
金鑰會儲存在帳戶的 Blob 儲存體容器中,此帳戶由 AzureWebJobsStorage 設定所提供。 未設定 AzureWebJobsSecretStorageType 時,Blob 儲存體是預設行為。若要指定不同的儲存體帳戶,請使用 AzureWebJobsSecretStorageSas 設定來指出第二個儲存體帳戶的 SAS URL。 |
| AzureWebJobsSecretStorageType | files |
金鑰會保存在檔案系統上。 此行為是 Functions v1.x 的預設值。 |
| AzureWebJobsSecretStorageType | keyvault |
金鑰會儲存在 AzureWebJobsSecretStorageKeyVaultName 所設定的金鑰保存庫執行個體中。 |
| AzureWebJobsSecretStorageType | kubernetes |
只有在 Kubernetes 中執行 Functions 執行階段時才支援。 若未設定 AzureWebJobsKubernetesSecretName,則會將存放庫視為唯讀。 在此情況下,必須在部署之前產生這些值。
Azure Functions Core Tools 會在部署至 Kubernetes 時自動產生這些值。 |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsStorage
指定 Functions 執行階段用於一般作業的 Azure 儲存體帳戶連接字串。 Functions 對此儲存體帳戶的部分用途包括金鑰管理、計時器觸發程序管理和事件中樞檢查點。 儲存體帳戶必須是一般用途的帳戶,支援 Blob、佇列和資料表。 如需詳細資訊,請參閱儲存體帳戶需求。
| Key | 範例值 |
|---|---|
| AzureWebJobsStorage | DefaultEndpointsProtocol=https;AccountName=... |
您可以為此儲存體帳戶使用身分識別型連線,而不必使用連接字串。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體 (部分機器翻譯)。
AzureWebJobsStorage__accountName
使用身分識別型儲存體連線時,請設定儲存體帳戶的帳戶名稱,而不是在 AzureWebJobsStorage 中使用連接字串。 此語法獨屬於 AzureWebJobsStorage,且無法用於其他身分識別型連線。
| Key | 範例值 |
|---|---|
| AzureWebJobsStorage__accountName | <STORAGE_ACCOUNT_NAME> |
對於主權雲端,或是在使用自訂 DNS 時,您必須改用服務特定的 AzureWebJobsStorage__*ServiceUri 設定。
AzureWebJobsStorage__blobServiceUri
在使用身分識別型儲存體連線時,請設定儲存體帳戶 Blob 服務的資料平面 URI。
| Key | 範例值 |
|---|---|
| AzureWebJobsStorage__blobServiceUri | https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體 (部分機器翻譯)。
AzureWebJobsStorage__clientId
設定用來取得受控識別驗證存取權杖的特定使用者指派的身分識別的用戶端識別碼。 需要將 AzureWebJobsStorage__credential 設為 managedidentity。 值是對應至指派給應用程式之身分識別的用戶端識別碼。 您無法同時設定 AzureWebJobsStorage__managedIdentityResourceId 和 AzureWebJobsStorage__clientId。 未設定時,會使用系統指派的身分識別。
AzureWebJobsStorage__credential
定義如何取得連線的存取權杖。 為受控識別驗證使用 managedidentity。 使用 managedidentity 時,主控環境中必須有可用的受控識別。 請勿在本機開發案例中設定 AzureWebJobsStorage__credential。
AzureWebJobsStorage__managedIdentityResourceId
設定用來取得受控識別驗證存取權杖的使用者指派的身分識別的資源識別碼。 需要將 AzureWebJobsStorage__credential 設為 managedidentity。 值是指派給用於受控識別驗證之應用程式的身分識別的資源識別碼。 您無法同時設定 AzureWebJobsStorage__managedIdentityResourceId 和 AzureWebJobsStorage__clientId。 未設定時,會使用系統指派的身分識別。
AzureWebJobsStorage__queueServiceUri
在使用身分識別型儲存體連線時,請設定儲存體帳戶佇列服務的資料平面 URI。
| Key | 範例值 |
|---|---|
| AzureWebJobsStorage__queueServiceUri | https://<STORAGE_ACCOUNT_NAME>.queue.core.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體 (部分機器翻譯)。
AzureWebJobsStorage__tableServiceUri
在使用身分識別型儲存體連線時,請設定儲存體帳戶資料表服務的資料平面 URI。
| Key | 範例值 |
|---|---|
| AzureWebJobsStorage__tableServiceUri | https://<STORAGE_ACCOUNT_NAME>.table.core.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體 (部分機器翻譯)。
AzureWebJobs_TypeScriptPath
用於 TypeScript 之編譯器的路徑。 可讓您覆寫預設值 (需要的話)。
| Key | 範例值 |
|---|---|
| AzureWebJobs_TypeScriptPath | %HOME%\typescript |
DOCKER_REGISTRY_SERVER_PASSWORD
指出用來存取私人容器登錄的密碼。 只有在從私人容器登錄部署容器化的函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App Service 中的環境變數和應用程式設定。
DOCKER_REGISTRY_SERVER_URL
指出私人容器登錄的 URL。 只有在從私人容器登錄部署容器化的函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App Service 中的環境變數和應用程式設定。
DOCKER_REGISTRY_SERVER_USERNAME
指出用來存取私人容器登錄的帳戶。 只有在從私人容器登錄部署容器化的函式應用程式時,才需要此設定。 如需詳細資訊,請參閱 Azure App Service 中的環境變數和應用程式設定。
DOCKER_SHM_SIZE
當 Python 背景工作角色使用共用記憶體時,設定共用記憶體的大小 (以位元組為單位)。 若要深入了解,請參閱共用記憶體。
| Key | 範例值 |
|---|---|
| DOCKER_SHM_SIZE | 268435456 |
上述值會設定 ~256 MB 的共用記憶體大小。
要求 FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED 必須設定為 1。
ENABLE_ORYX_BUILD
指出在部署期間是否使用 Oryx 建置系統。
在對 Linux 執行遠端組建部署時,必須將 ENABLE_ORYX_BUILD 設定為 true。 如需詳細資訊,請參閱遠端組建。
| Key | 範例值 |
|---|---|
| ENABLE_ORYX_BUILD | true |
FUNCTION_APP_EDIT_MODE
指出您是否可以在 Azure 入口網站中編輯功能應用。 有效值為 readwrite 和 readonly。
| Key | 範例值 |
|---|---|
| FUNCTION_APP_EDIT_MODE | readonly |
執行階段會根據函式應用程式的語言堆疊和部署狀態來設定值。 如需詳細資訊,請參閱 Azure 入口網站中的開發限制。
FUNCTIONS_EXTENSION_VERSION
裝載您函式應用程式的 Functions 執行階段版本。 具有主要版本的波狀符號 (~) 表示使用該主要版本的最新版本 (例如 ~4)。 當有相同主要版本的新次要版本可用時,它們會自動安裝在函數應用程式中。
| Key | 範例值 |
|---|---|
| FUNCTIONS_EXTENSION_VERSION | ~4 |
支援下列主要執行階段版本值:
| Value | 執行階段目標 | Comment |
|---|---|---|
~4 |
4.x | Recommended |
~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 為目標 ,包括其他必要的組態值。
| Key | 範例值 |
|---|---|
| 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 函式之前還是之後:
- 如果先前擲回錯誤,則預設行為符合
false。 例如,如果您使用模型 v3,或是您的入口檔案不存在。 - 如果錯誤發生後,預設行為會符合
true。 例如,如果您嘗試註冊重複的模型 v4 函數。
| Key | Value | Description |
|---|---|---|
| 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 端點的要求本文大小,覆寫其預設限制。 此值會以位元組為單位來提供,預設的要求大小上限為 104,857,600 個位元組。
| Key | 範例值 |
|---|---|
| FUNCTIONS_REQUEST_BODY_SIZE_LIMIT | 250000000 |
FUNCTIONS_V2_COMPATIBILITY_MODE
Important
不再支援此設定。 這最初是為了針對 v2.x 執行階段的應用程式啟用短期因應措施而提供。 如此在仍受支援時,能夠改為在 v3.x 執行階段上執行。 除了在 1.x 版上執行的舊版應用程式外,所有函式應用程式都必須在 Functions 執行階段 4.x 版上執行:FUNCTIONS_EXTENSION_VERSION=~4。 如需詳細資訊,請參閱 Azure Functions 執行階段版本概觀。
FUNCTIONS_WORKER_PROCESS_COUNT
指定語言背景工作處理序的最大數目,預設值為 1。 允許的最大值為 10。 Function 引動會在語言背景工作處理序之間平均散發。 語言背景工作處理序每隔 10 秒繁衍一次,直到達到 FUNCTIONS_WORKER_PROCESS_COUNT 所設定的計數為止。 使用多種語言的背景工作處理序與縮放不同。 當您的工作負載混合使用 CPU 繫結和 I/O 繫結引動時,請考慮使用此設定。 此設定適用于所有語言執行階段,但流程 (FUNCTIONS_WORKER_RUNTIME=dotnet) 中執行的 .NET 除外。
| Key | 範例值 |
|---|---|
| FUNCTIONS_WORKER_PROCESS_COUNT | 2 |
FUNCTIONS_WORKER_RUNTIME
要在函式應用程式中載入之背景工作執行階段的語言或語言堆疊。 此值對應至應用程式中使用的語言,例如 python。 從 Azure Functions 執行階段 2.x 版開始,指定的函式應用程式只能支援單一語言。
| Key | 範例值 |
|---|---|
| FUNCTIONS_WORKER_RUNTIME | node |
有效值:
| Value | 語言/語言堆疊 |
|---|---|
dotnet |
C# (類別庫) C# (指令碼) |
dotnet-isolated |
C# (隔離背景工作處理序) |
java |
Java |
node |
JavaScript TypeScript |
powershell |
PowerShell |
python |
Python |
custom |
Other |
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
此設定可讓 Python 背景工作角色使用共用記憶體來改善輸送量。 當您的 Python 函式應用程式達到記憶體瓶頸時,請啟用共用記憶體。
| Key | 範例值 |
|---|---|
| FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED | 1 |
啟用此設定後,您可以使用 [DOCKER_SHM_SIZE] 設定來設定共用記憶體大小。 若要深入了解,請參閱共用記憶體。
JAVA_APPLICATIONINSIGHTS_ENABLE_TELEMETRY
指出 Java 背景工作處理序是否應該以 Open Telemetry 格式將遙測輸出至 Application Insights 端點。 將此旗標設定為 True 可告知 Functions 主機讓 Java 背景工作處理序直接串流 OpenTelemetry 記錄,這可防止重複的主機層級項目。 如需詳細資訊,請參閱設定應用程式設定 (部分機器翻譯)。
JAVA_ENABLE_SDK_TYPES
可讓您的函式應用程式在系結中使用原生 Azure SDK 類型。
Note
對 SDK 類型的繫結支援目前為預覽狀態,且僅限於 Azure Blob 儲存體 SDK。 如需詳細資訊,請參閱 Java 參考文章中的 SDK 類型。
| Key | 範例值 |
|---|---|
| JAVA_ENABLE_SDK_TYPES | true |
如需詳細資訊,請參閱 Java 參考文章中的 SDK 類型。
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 背景工作處理序在處理序啟動時和啟動之後的每個 MDMaxBackgroundUpgradePeriod,都會起始檢查 PowerShell 資源庫上的模組升級。 當 PowerShell 資源庫中有新的模組版本可用時,會安裝至檔案系統,並提供給 PowerShell 背景工作角色使用。 減少此值可讓您的函式應用程式更快取得較新的模組版本,但也會增加應用程式資源使用量,包括網路 I/O、CPU 和儲存體。 增加此值會降低應用程式的資源使用量,但也可能會延遲將新的模組版本傳遞至應用程式。
| Key | 範例值 |
|---|---|
| MDMaxBackgroundUpgradePeriod | 7.00:00:00 |
若要深入了解,請參閱相依性管理。
MDNewSnapshotCheckPeriod
指定每個 PowerShell 背景工作角色檢查是否安裝受控相依性升級的頻率。 預設頻率為 01:00:00 (每小時)。
將新的模組版本安裝到檔案系統後,必須重新啟動每個 PowerShell 背景工作處理序。 重新啟動 PowerShell 背景工作角色會影響您的應用程式可用性,因為它可能會中斷目前的函式執行。 在重新啟動所有 PowerShell 背景工作處理序前,函式引動可能會使用舊的或新的模組版本。 重新啟動所有 PowerShell 背景工作角色都會在 MDNewSnapshotCheckPeriod 內完成。
在每個 MDNewSnapshotCheckPeriod 中,PowerShell 工作程序會檢查是否已安裝受控相依性更新。 安裝升級時,會起始重新啟動。 增加此值會降低因為重新啟動而中斷的頻率。 不過,若是增加此值,則函式引動會使用舊模組版本還是新模組版本的不確定時間也可能會增加。
| Key | 範例值 |
|---|---|
| MDNewSnapshotCheckPeriod | 01:00:00 |
若要深入了解,請參閱相依性管理。
MDMinBackgroundUpgradePeriod
先前的受控相依性升級檢查之後,到開始另一次升級檢查之前的時間週期,預設為 1.00:00:00 (每日)。
為了避免在工作程序頻繁重新啟動時進行過多的模組升級,如果任何工作程序在過去的 MDMinBackgroundUpgradePeriod中已經啟動了該檢查,則不會進行模組升級檢查。
| Key | 範例值 |
|---|---|
| MDMinBackgroundUpgradePeriod | 1.00:00:00 |
若要深入了解,請參閱相依性管理。
OTEL_EXPORTER_OTLP_ENDPOINT
指出要匯出 OpenTelemetry 格式資料以進行擷取的 URL。 如需詳細資訊,請參閱 使用 OpenTelemetry 搭配 Azure Functions。
OTEL_EXPORTER_OTLP_HEADERS
設定選用的標頭清單,這些標頭會套用至匯出至 OpenTelemetry 端點的所有傳出資料。 當 OpenTelemetry 端點要求提供 API 金鑰時,您應該使用此設定。 如需詳細資訊,請參閱 使用 OpenTelemetry 搭配 Azure Functions。
PIP_INDEX_URL
此設定可讓您覆寫 Python 套件索引的基底 URL,預設為 https://pypi.org/simple。 當您需要使用自訂相依性來執行遠端組建時,請使用此設定。 這些自訂相依性可能位於符合 PEP 503 (簡單存放庫 API) 規範的套件索引存放庫中,或位於遵循相同格式的本機目錄中。
| Key | 範例值 |
|---|---|
| PIP_INDEX_URL | http://my.custom.package.repo/simple |
若要深入了解,請參閱 pip 的 --index-url 文件,並使用 Python 開發人員參考中的自訂相依性。
PIP_EXTRA_INDEX_URL
此設定的值表示 Python 應用程式自訂套件的額外索引 URL,在 --index-url 以外供使用。 當您需要使用額外套件索引中找到的自訂相依性來執行遠端組建時,請使用此設定。 應遵循與 --index-url 相同的規則。
| Key | 範例值 |
|---|---|
| PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
若要深入了解,請參閱 pip 的 --extra-index-url 文件,及 Python 開發人員參考中的自訂相依性。
PROJECT
持續部署設定,會向 Kudu 部署服務指定某個已連線存放庫中的資料夾,以定位可部署的專案。
| Key | 範例值 |
|---|---|
| PROJECT | WebProject/WebProject.csproj |
PYTHON_APPLICATIONINSIGHTS_ENABLE_TELEMETRY
指出 Python 背景工作處理序是否應該以 Open Telemetry 格式將遙測輸出至 Application Insights 端點。 將此旗標設定為 True 可告知 Functions 主機讓 Python 背景工作處理序將 OpenTelemetry 資料匯出至 Application Insights 端點 (部分機器翻譯)。 如需詳細資訊,請參閱設定應用程式設定 (部分機器翻譯)。
PYTHON_ISOLATE_WORKER_DEPENDENCIES
組態為 Python 函式應用程式專用。 它會定義模組載入的優先順序。 依預設,此值設定為 0。
| Key | Value | Description |
|---|---|---|
| PYTHON_ISOLATE_WORKER_DEPENDENCIES | 0 |
優先從內部 Python 背景工作角色的相依性載入 Python 程式庫,此為預設行為。 requirements.txt 中定義的非 Microsoft 函式庫可能會被隱藏。 |
| PYTHON_ISOLATE_WORKER_DEPENDENCIES | 1 |
優先從 requirements.txt 中定義的應用程式套件載入 Python 程式庫。 此值可防止您的程式庫與內部 Python 工作者的程式庫發生衝突。 |
PYTHON_ENABLE_DEBUG_LOGGING
在 Python 函式應用程式中啟用偵錯等級記錄。 值為 1 的時候便可啟用偵錯等級記錄。 如果沒有此設定或值為 0,便只有資訊和更高層級的記錄會從 Python 背景工作角色傳送至函式主機。 偵錯或追蹤 Python 函式執行時,請使用此設定。
偵錯 Python 函式時,請務必視需要在 host.json 檔案中也設定偵錯或追蹤記錄層級。 若要深入了解,請參閱如何設定 Azure Functions 的監視。
PYTHON_ENABLE_OPENTELEMETRY
指出 Python 背景工作處理序是否應該將遙測匯出至 Open Telemetry 端點。 將此旗標設定為 True 可告知 Functions 主機讓 Python 背景工作處理序將 OpenTelemetry 資料匯出至已設定的 OTEL_EXPORTER_OTLP_ENDPOINT。 如需詳細資訊,請參閱設定應用程式設定 (部分機器翻譯)。
PYTHON_ENABLE_WORKER_EXTENSIONS
組態為 Python 函式應用程式專用。 將此值設定為 1 可讓工作者載入 requirements.txt 中定義的 Python 工作者擴展。 它可讓您的函式應用程式存取合作夥伴套件所提供的新功能。 這也可能會變更應用程式中函式載入和引動的行為。 請確保您選擇的擴充功能值得信任,因為您承擔使用它的風險。 Azure Functions 不會提供任何延伸模組的明確擔保。 若要了解如何使用延伸模組,請瀏覽延伸模組的手冊頁面或讀我文件。根據預設,此值會設定為 0。
| Key | Value | Description |
|---|---|---|
| PYTHON_ENABLE_WORKER_EXTENSIONS | 0 |
停用任何 Python 背景工作角色延伸模組。 |
| PYTHON_ENABLE_WORKER_EXTENSIONS | 1 |
允許 Python 背景工作角色從 requirements.txt 載入延伸模組。 |
PYTHON_THREADPOOL_THREAD_COUNT
指定 Python 語言工作者用來執行函式調用的執行緒數目上限,對於 Python 版本 1 及以下版本,預設值為 3.8 。 針對 Python 版本 3.9 和更新版本,此值設為 None。 此設定不保證在執行期間會設定的執行緒數目。 此設定可讓 Python 將執行緒數目擴展至指定的值。 此設定僅適用於 Python 函式應用程式。 此外,此設定也適用於同步函式引動,不適用於協同程式。
| Key | 範例值 | 最大值 |
|---|---|---|
| PYTHON_THREADPOOL_THREAD_COUNT | 2 | 32 |
SCALE_CONTROLLER_LOGGING_ENABLED
此設定目前為預覽狀態。
此設定會控制 Azure Functions 縮放控制器的記錄。 如需詳細資訊,請參閱調整控制器記錄。
| Key | 範例值 |
|---|---|
| SCALE_CONTROLLER_LOGGING_ENABLED | AppInsights:Verbose |
此索引鍵的值是以格式 <DESTINATION>:<VERBOSITY> 提供,其定義如下:
| Property | Description |
|---|---|
<DESTINATION> |
已傳送記錄的目的地。 有效值為 AppInsights 和 Blob。當您使用 AppInsights 時,請確定您的函式應用程式中已啟用 Application Insights。當您將目的地設定為 Blob 時,記錄會在名為 azure-functions-scale-controller 的 Blob 容器中建立,該容器位於 AzureWebJobsStorage 應用程式設定中的預設儲存體帳戶中。 |
<VERBOSITY> |
指定記錄的層級。 支援的值為 None、Warning 和 Verbose。當設定為 Verbose 時,調整控制器會記錄背景工作計數中每次變更的原因,並針對考慮這些決策的觸發程序,記錄其相關資訊。 詳細資訊記錄包括觸發程序警告,以及觸發程序在調整控制器執行前後所使用的雜湊。 |
Tip
請記住,如果您讓調整控制器記錄保持啟用狀態,您監視函式應用程式的潛在成本就會受到影響。 請考慮啟用記錄,直到您收集足夠的資料以瞭解縮放控制器的行為方式為止,然後將其停用。
SCM_DO_BUILD_DURING_DEPLOYMENT
控制部署期間的遠端組建行為。 當 SCM_DO_BUILD_DURING_DEPLOYMENT 設定為 true 時,系統會在部署期間從遠端建置專案。
| Key | 範例值 |
|---|---|
| SCM_DO_BUILD_DURING_DEPLOYMENT | true |
SCM_LOGSTREAM_TIMEOUT
控制連線到串流記錄時的逾時,以秒為單位。 預設值為 7200 (2 小時)。
| Key | 範例值 |
|---|---|
| SCM_LOGSTREAM_TIMEOUT | 1800 |
上述範例值 1800 會設定 30 分鐘的逾時。 如需詳細資訊,請參閱在 Azure Functions 中啟用串流執行記錄。
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
儲存體帳戶的連接字串,在事件驅動調整計畫中,函式應用程式程式碼和設定會儲存在該帳戶中。 如需詳細資訊,請參閱儲存體帳戶連線設定。
| Key | 範例值 |
|---|---|
| WEBSITE_CONTENTAZUREFILECONNECTIONSTRING | DefaultEndpointsProtocol=https;AccountName=... |
無論是消耗型計費方案還是彈性高級方案的應用程式,都需要此設定。 專用方案的應用程式不需要這項功能,因為 Functions 不會對其進行動態調整擴展。
彈性取用方案現在是 Azure Functions 建議的無伺服器裝載方案。 它提供更快的擴展、減少的冷啟動、專用網絡以及對性能和成本的更多控制。 如需詳細資訊,請參閱 彈性取用方案。
變更或移除此設定可能會導致您的函式應用程式無法啟動。 若要深入了解,請參閱此錯誤疑難排解文章。
存取檔案共用時,Azure 檔案儲存體不支援使用受控識別。 如需詳細資訊,請參閱 Azure 檔案儲存體支援的驗證案例。
WEBSITE_CONTENTOVERVNET
Important
WEBSITE_CONTENTOVERVNET 是舊版應用程式設定,已被 vnetContentShareEnabled 網站屬性取代。
當儲存體帳戶限制為虛擬網路時,值為 1 可讓函數應用程式得以跨戳記進行調整。 您應該在將儲存體帳戶限制為虛擬網路時啟用此設定。 只有在使用 WEBSITE_CONTENTSHARE 與 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 時才需要 。 如需深入了解,請參閱將儲存體帳戶限制為虛擬網路。
| Key | 範例值 |
|---|---|
| WEBSITE_CONTENTOVERVNET | 1 |
當儲存帳號受到 VNet 限制時,此應用程式設定是針對 Elastic Premium及 Dedicated(App Service)(Standard及更高版本)方案進行跨標章規模調節所必需的。 若沒有此設定,功能應用程式只能在單一印章內縮放(約 1 到 20 個實例)。 在使用量方案上執行時不支援。
Note
若儲存體帳戶由相同方案中的多個函數應用程式共用,當您路由至其中的內容共用時,必須特別小心。 如需詳細資訊,請參閱儲存體考量一文中的始終透過虛擬網路進行路由傳送。
WEBSITE_CONTENTSHARE
Functions 用來儲存函式應用程式之程式碼和設定檔的檔案共用名稱。 事件驅動的縮放方案需要此內容。 與 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 搭配使用。 預設值是執行階段產生的唯一字串,會以函式應用程式名稱開頭。 如需詳細資訊,請參閱儲存體帳戶連線設定。
| Key | 範例值 |
|---|---|
| WEBSITE_CONTENTSHARE | functionapp091999e2 |
只有消費和進階方案應用程式才需要此設定。 專用方案應用程式不需要此設定,Functions 不會動態調整這些應用程式。
彈性取用方案現在是 Azure Functions 建議的無伺服器裝載方案。 它提供更快的擴展、減少的冷啟動、專用網絡以及對性能和成本的更多控制。 如需詳細資訊,請參閱 彈性取用方案。
在建立函式應用程式時會建立共用。 變更或移除此設定可能會導致您的函式應用程式無法啟動。 若要深入了解,請參閱此錯誤疑難排解文章。
使用 Azure Resource Manager (ARM) 範本或 Bicep 檔案在部署期間建立函式應用程式時,適用下列考量:
- 當您未為主要函式應用程式或任何位置中的應用程式設定
WEBSITE_CONTENTSHARE值時,系統會為您產生唯一的共用值。 若為 ARM 範本部署,WEBSITE_CONTENTSHARE不設定 。 - 在某些情況下,您必須將
WEBSITE_CONTENTSHARE值設定為預先定義的值,例如當您在虛擬網路中使用安全的儲存體帳戶時。 在此情況下,您必須為主要函式應用程式和每個部署位置的應用程式設定唯一的共用名稱。 針對受虛擬網路保護的儲存體帳戶,您還必須在自動化部署中建立共用本身。 如需詳細資訊,請參閱受保護的部署。 - 不要讓
WEBSITE_CONTENTSHARE成為位置設定。 - 當您指定
WEBSITE_CONTENTSHARE時,此值必須遵循這份共用名稱指南。
WEBSITE_DNS_SERVER
設定應用程式在解析 IP 位址時所使用的 DNS 伺服器。 在使用特定網路功能時,通常會需要此設定,例如 Azure DNS 私人區域和私人端點。
| Key | 範例值 |
|---|---|
| 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 Resource Manager (ARM) 範本部署函式應用程式時,停用快取。
| Key | 範例值 |
|---|---|
| WEBSITE_FUNCTIONS_ARMCACHE_ENABLED | 0 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
應用程式可擴增的執行個體數目上限。 預設值是無限制。
Important
此設定處於預覽狀態。 函式最大向外延展的應用程式屬性現在存在。 建議使用此屬性來限制擴增。
| Key | 範例值 |
|---|---|
| WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT | 5 |
WEBSITE_NODE_DEFAULT_VERSION
僅限 Windows。
設定在 Windows 上執行函式應用程式時要使用的 Node.js 版本。 您應該使用波狀符號 (~) 讓執行階段使用目標主要版本的最新可用版本。 例如,當設為 ~18 時,會使用最新的 Node.js 18 版本。 在使用波狀符號將主要版本作為目標時,您不需要手動更新次要版本。
| Key | 範例值 |
|---|---|
| WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
當您在進階方案上執行的函式應用程式上執行 位置交換 時,當應用程式使用的專用儲存體帳戶受到網路限制時,交換可能會失敗。 此失敗是由舊版 應用程式記錄功能所造成,而 Functions 和 App Service 會共用這些功能。 此設定會覆寫該舊版記錄功能,並允許交換發生。
| Key | 範例值 |
|---|---|
| WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS | 0 |
將包含 WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS 值的 0 新增至所有位置,以確保舊版診斷設定不會封鎖您的交換。 您也可以將此設定和值僅新增至生產位置做為 部署位置 (黏性) 設定。
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS
在預設情況下,函式應用程式的版本設定會專屬於每個位置。 使用部署位置升級函式時,會使用此設定。 這種方法可以防止因交換後更改版本而導致的意外行為。 在生產環境中和位置中設為 0,以確保所有版本設定也都會交換。 如需詳細資訊,請參閱使用位置進行升級。
| Key | 範例值 |
|---|---|
| WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS | 0 |
WEBSITE_RUN_FROM_PACKAGE
可讓您的函數應用程式從套件檔案執行,該檔案可以在本機掛接或部署至外部 URL。
| Key | 範例值 |
|---|---|
| WEBSITE_RUN_FROM_PACKAGE | 1 |
有效值為 URL (可解析為外部部署套件檔案的位置) 或 1。 設定為 1 時,套件必須位於 d:\home\data\SitePackages 資料夾。 當您使用已啟用 WEBSITE_RUN_FROM_PACKAGE 的 ZIP 部署時,套件會自動上傳至此位置。 如需詳細資訊,請參閱從套件檔案執行函式。
當您使用 WEBSITE_RUN_FROM_PACKAGE=<URL> 時,URL 必須解析為可存取之儲存位置中的套件檔案位置,例如 Azure Blob 儲存體容器。 容器必須是私人的,才能防止未經授權的存取,這要求您在 URL 中使用共用存取簽章 (SAS) 或 Microsoft Entra ID 驗證以允許存取。 建議搭配受控識別使用 Microsoft Entra ID。
這是在 Azure Blog 儲存體容器中將 WEBSITE_RUN_FROM_PACKAGE 設定為部署套件 URL 的範例:
WEBSITE_RUN_FROM_PACKAGE=https://contosostorageaccount.blob.core.windows.net/mycontainer/mypackage.zip
使用 SAS 時,您會將權杖附加至 URL 作為查詢參數。
當您使用使用者指派的受控識別從 Azure Blob 儲存體部署套件 (部分機器翻譯) 時,也必須將 WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID 設定為使用者指派的受控識別的資源識別碼。 當您從外部套件 URL 部署時,也必須手動同步觸發程序。 如需詳細資訊,請參閱觸發程序同步處理。
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
指出從使用 Microsoft Entra ID 保護之外部 Azure Blob 儲存體容器存取部署套件時,所使用之使用者指派的受控識別資源識別碼。 此設定要求您將 WEBSITE_RUN_FROM_PACKAGE 設定為私人容器中部署套件的 URL。
設定 WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID=SystemAssigned 與省略該設定相同,在此案例中會使用應用程式的系統指派的受控識別。
WEBSITE_SKIP_CONTENTSHARE_VALIDATION
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 和 WEBSITE_CONTENTSHARE 設定具有額外的驗證檢查,以確保應用程式可以正確啟動。 當函式應用程式因網路限制或其他限制因素,而無法正確呼叫下游儲存體帳戶或 Key Vault 時,應用程式設定的建立會失敗。 當WEBSITE_SKIP_CONTENTSHARE_VALIDATION設定為 1時,會略過驗證檢查。 否則,值預設為 0 ,並進行驗證。
| Key | 範例值 |
|---|---|
| WEBSITE_SKIP_CONTENTSHARE_VALIDATION | 1 |
如果略過驗證,且連接字串或內容共用無效,則應用程式無法正確啟動。 在此情況下,函式會傳回 HTTP 500 錯誤。 如需詳細資訊,請參閱 疑難解答錯誤:「Azure Functions 運行時間無法連線」。
WEBSITE_SLOT_NAME
Read-only. 目前部署位置的名稱。 生產位置的名稱為 Production。
| Key | 範例值 |
|---|---|
| WEBSITE_SLOT_NAME | Production |
WEBSITE_TIME_ZONE
可讓您設定函式應用程式的時區。
| Key | OS | 範例值 |
|---|---|---|
| WEBSITE_TIME_ZONE | Windows | Eastern Standard Time |
| WEBSITE_TIME_ZONE | Linux | America/New_York |
CRON 運算式使用的預設時區是國際標準時間 (UTC)。 若要讓 CRON 運算式以另一個時區為基礎,請為名為 WEBSITE_TIME_ZONE 的函式應用程式建立應用程式設定。
此設定的值取決於函數應用程式執行所在的作業系統和方案。
| 操作系統 | Plan | Value |
|---|---|---|
| Windows | All | 將值設定為第二行指定的所需時區名稱,而第二行來自 Windows 命令 tzutil.exe /L 所指定的每個配對 |
| Linux | 進階 專用 |
將值設定為所需時區的名稱,如 tz database (英文) 中所示 |
Note
在WEBSITE_TIME_ZONE或TZ方案中於 Linux 上執行時,目前不支援 和 。 在此情況下,設定 WEBSITE_TIME_ZONE 或 TZ 會產生 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 可在使用量方案上停用冷啟動最佳化。
| Key | 範例值 |
|---|---|
| WEBSITE_USE_PLACEHOLDER | 1 |
WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED
指出在使用量方案上執行 .NET 隔離背景工作處理序函式時,是否要使用特定的冷啟動最佳化。 設定為 0 可在使用量方案上停用冷啟動最佳化。
| Key | 範例值 |
|---|---|
| WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED | 1 |
WEBSITE_VNET_ROUTE_ALL
Important
WEBSITE_VNET_ROUTE_ALL 是舊版應用程式設定,已被 vnetRouteAllEnabled 網站設定所取代。
表示應用程式的所有輸出流量是否透過虛擬網路路由傳送。
1 的設定值表示所有應用程式流量都是透過虛擬網路路由傳送。 在彈性進階版和專用裝載方案中設定 區域虛擬網路整合 時,您需要此設定。 當虛擬網路 NAT 閘道用來定義靜態輸出 IP 位址時也會使用。
| Key | 範例值 |
|---|---|
| WEBSITE_VNET_ROUTE_ALL | 1 |
WEBSITES_ENABLE_APP_SERVICE_STORAGE
指出是否在所縮放的執行個體之間共用 /home 目錄,預設值為 true。 您應該在容器中部署函式應用程式時將此值設定為 false 。
App Service 網站設定
某些組態必須在 App Service 層級維護,例如網站設定,例如語言版本。 這些設定是在 Azure 入口網站中管理,方法是使用 REST API,或使用 Azure CLI 或 Azure PowerShell。 以下是可能需要的網站設定,視您的執行階段語言、作業系統和版本而定。
AcrUseManagedIdentityCreds
指出映像是否為使用受控識別驗證從 Azure Container Registry 執行個體取得的。
true 的值要求您使用受控認證。 我們建議使用此方法,而不是儲存的認證憑證,作為安全性最佳實務。
AcrUserManagedIdentityID
指出在從 Azure Container Registry 執行個體取得映像時要使用的受控識別。 需要將 AcrUseManagedIdentityCreds 設定為 true。 這些值有效:
| Value | Description |
|---|---|
system |
會使用函數應用程式的系統指派受控識別。 |
<USER_IDENTITY_RESOURCE_ID> |
使用者指派的受控識別的完整資源識別碼。 |
您指定的身分識別必須新增至容器登錄中的 ACRPull 角色。 如需詳細資訊,請參閱使用映像在 Azure 上建立和設定函式應用程式 (部分機器翻譯)。
alwaysOn
在執行於專用 (App Service) 方案中的函數應用程式上,Azure Functions 執行階段會在處於非使用中狀態幾分鐘後進入閒置階段,此時只有要求 HTTP 觸發程序才能「喚醒」函數應用程式。 若要確定非 HTTP 觸發的函式 (包括計時器觸發函式) 能夠正確執行,請將 alwaysOn 網站設定設為 true 的值,以便為函數應用程式啟用 [一律開啟]。
functionsRuntimeAdminIsolationEnabled
判斷是否可存取函式應用程式中的內建管理員 (/admin) 端點。 若設定為 false (預設值),當這些要求在要求中呈現/admin主要金鑰時,應用程式允許對 之下的端點提出要求。 當 true 時,即使使用主要金鑰,也無法存取 /admin 端點。
無法針對在取用方案中在 Linux 上執行的應用程式設定此屬性。 無法針對在 Azure Functions 1.x 版上執行的應用程式設定它。 如果您使用 1.x 版,您必須先 移轉至 4.x 版。
彈性取用方案現在是 Azure Functions 建議的無伺服器裝載方案。 它提供更快的擴展、減少的冷啟動、專用網絡以及對性能和成本的更多控制。 如需詳細資訊,請參閱 彈性取用方案。
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。
Important
當您建立自己的容器時,您必須將容器的基底映像更新為最新的支援基底映像。 Azure Functions 支援的基底映像是特定語言的。 請參閱 Azure Functions 基底映像存放庫。
Functions 小組致力於發佈這些基礎映像的每月更新。 一般更新包括 Functions 執行階段和語言的最新次要版本更新與安全性修正。 您應該定期從最新的基礎映像更新容器,並重新部署更新後的容器版本。 如需詳細資訊,請參閱 維護自定義容器。
netFrameworkVersion
設定 C# 函式的特定 .NET 版本。 如需詳細資訊,請參閱在 Azure 中更新函式應用程式。
powerShellVersion
設定函式執行所在的特定 PowerShell 版本。 如需詳細資訊,請參閱變更 PowerShell 版本。
在本機執行時,您會改用 local.settings.json 檔案中的 FUNCTIONS_WORKER_RUNTIME_VERSION 設定。
vnetContentShareEnabled
在 Premium 方案中執行的應用程式會使用檔案共用來儲存內容。 此內容共用的名稱會儲存在 WEBSITE_CONTENTSHARE 應用程式設定中,而其連接字串會儲存在 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 中。 若要透過虛擬網路路由傳送函式應用程式與內容共用之間的流量,則您也必須將 vnetContentShareEnabled 設定為 true。 在彈性進階和專用主控方案中將您的儲存體帳戶限制為虛擬網路時,跨戳記調整需要啟用此網站屬性。 若沒有此設定,功能應用程式只能在單一印章內縮放(約 1 到 20 個實例)。
Note
若儲存體帳戶由相同方案中的多個函數應用程式共用,當您路由至其中的內容共用時,必須特別小心。 如需詳細資訊,請參閱儲存體考量一文中的始終透過虛擬網路進行路由傳送。
此網站屬性會取代舊版的 WEBSITE_CONTENTOVERVNET 設定。
vnetImagePullEnabled
Azure Functions 支援在 Linux 容器中執行的函式應用程式。 若要從虛擬網路內的容器登錄中進行連線和提取,您必須將 vnetImagePullEnabled 設定為 true。 Elastic Premium 和 Dedicated 主控方案支援此網站屬性。 Flex Consumption 方案不會依賴網站屬性或應用程式設定來設定網路功能。 如需詳細資訊,請參閱 彈性使用量方案淘汰。
vnetRouteAllEnabled
表示應用程式的所有輸出流量是否透過虛擬網路路由傳送。
true 的設定值表示所有應用程式流量都是透過虛擬網路路由傳送。 在 Elastic Premium 和 Dedicated 方案中設定區域性虛擬網路整合時,請使用此設定。 當虛擬網路 NAT 閘道用來定義靜態輸出 IP 位址時也會使用。 如需詳細資訊,請參閱設定應用程式路由。
此網站設定會取代舊版的 WEBSITE_VNET_ROUTE_ALL 設定。
彈性使用量方案淘汰
在彈性使用量方案中,這些網站屬性和應用程式設定已被取代,且不應該在建立函數應用程式資源時使用:
| Setting/property | Reason |
|---|---|
ENABLE_ORYX_BUILD |
在 Flex 使用量中部署時,由 remoteBuild 參數取代 |
FUNCTIONS_EXTENSION_VERSION |
應用程式設定是由後端所設定。 可以忽略 ~1 的值。 |
FUNCTIONS_WORKER_RUNTIME |
在 name 中已由 properties.functionAppConfig.runtime 取代 |
FUNCTIONS_WORKER_RUNTIME_VERSION |
在 version 中已由 properties.functionAppConfig.runtime 取代 |
FUNCTIONS_MAX_HTTP_CONCURRENCY |
由調整和並行觸發程序區段所取代 |
FUNCTIONS_WORKER_PROCESS_COUNT |
設定無效 |
FUNCTIONS_WORKER_DYNAMIC_CONCURRENCY_ENABLED |
設定無效 |
SCM_DO_BUILD_DURING_DEPLOYMENT |
在 Flex 使用量中部署時,由 remoteBuild 參數取代 |
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING |
由 functionAppConfig 的部署區段所取代 |
WEBSITE_CONTENTOVERVNET |
未用於 Flex 使用量的網路功能 |
WEBSITE_CONTENTSHARE |
由 functionAppConfig 的部署區段所取代 |
WEBSITE_DNS_SERVER |
DNS 繼承自彈性使用量中的整合式虛擬網路 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT |
在 maximumInstanceCount 中已由 properties.functionAppConfig.scaleAndConcurrency 取代 |
WEBSITE_NODE_DEFAULT_VERSION |
在 version 中已由 properties.functionAppConfig.runtime 取代 |
WEBSITE_RUN_FROM_PACKAGE |
未用於 Flex 使用量中的部署 |
WEBSITE_SKIP_CONTENTSHARE_VALIDATION |
內容共用不適用於彈性消費模式 |
WEBSITE_VNET_ROUTE_ALL |
未用於 Flex 使用量的網路功能 |
properties.alwaysOn |
無效 |
properties.containerSize |
重新命名為 instanceMemoryMB |
properties.ftpsState |
不支援 FTPS |
properties.isReserved |
無效 |
properties.IsXenon |
無效 |
properties.javaVersion |
在 version 中已由 properties.functionAppConfig.runtime 取代 |
properties.LinuxFxVersion |
已由 properties.functionAppConfig.runtime 取代 |
properties.netFrameworkVersion |
在 version 中已由 properties.functionAppConfig.runtime 取代 |
properties.powerShellVersion |
在 version 中已由 properties.functionAppConfig.runtime 取代 |
properties.siteConfig.functionAppScaleLimit |
重新命名為 maximumInstanceCount |
properties.siteConfig.preWarmedInstanceCount |
重新命名為 alwaysReadyInstances |
properties.use32BitWorkerProcess |
不支援 32 位元 |
properties.vnetBackupRestoreEnabled |
未用於 Flex 使用量的網路功能 |
properties.vnetContentShareEnabled |
未用於 Flex 使用量的網路功能 |
properties.vnetImagePullEnabled |
未用於 Flex 使用量的網路功能 |
properties.vnetRouteAllEnabled |
未用於 Flex 使用量的網路功能 |
properties.windowsFxVersion |
無效 |