Azure Functions 的應用程式設定參考
函式應用程式中的應用程式設定所包含的設定選項,會影響該函式應用程式的所有函式。 這些設定會以環境變數的形式供系統存取。 本文列出函式應用程式中可用的應用程式設定。
有數種方式可供您新增、更新和刪除函式應用程式設定:
對函式應用程式設定的變更需要將函式應用程式重新啟動。
本文會截斷連接字串值範例以利閱讀。
由於 Azure Functions 會使用 Azure App 服務 平台進行裝載,因此您可能會發現一些與 Azure App 服務 中環境變數和應用程式設定中所記載之函式應用程式裝載相關的設定。
應用程式設定的考量
在使用應用程式設定時,請注意下列考量:
對函式應用程式設定的變更需要將函式應用程式重新啟動。
在設定名稱中,雙底線 (
__
) 和冒號 (:
) 會被視為保留值。 雙底線在 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 在 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 的監視。
機碼 | 範例值 |
---|---|
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
時,您設定的特定值取決於受控識別的類型:
受控識別 | 設定值 |
---|---|
系統指派 | Authorization=AAD |
使用者指派 | Authorization=AAD;ClientId=<USER_ASSIGNED_CLIENT_ID> |
此驗證需求會套用至來自 Functions 主機、快照偵錯工具、分析工具及任何特定語言代理程式的連線。 若要使用此設定,函式應用程式必須已可使用受控識別,且具有相當於監視計量發行者的指派角色。
注意
使用 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 實例在主權雲端中執行時,需要自定義端點
如需詳細資訊,請參閱連接字串。
機碼 | 範例值 |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
若要使用 Microsoft Entra 驗證連線到 Application Insights,您應該使用 APPLICATIONINSIGHTS_AUTHENTICATION_STRING
。
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
網域中函式應用程式的 Proxyies.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
。 如需詳細資訊,請參閱函式 Proxy。
AZURE_FUNCTIONS_ENVIRONMENT
設定函式應用程式在 Azure 中執行時的執行階段裝載環境。 系統會在初始化期間讀取這個值,而且執行階段只接受下列值:
值 | Description |
---|---|
Production |
代表生產環境,有縮減的記錄和完整的效能最佳化。 如果未設定 AZURE_FUNCTIONS_ENVIRONMENT 或將其設定為不支援的值,則這個值是預設值。 |
Staging |
代表預備環境,例如在預備位置中執行時。 |
Development |
開發環境支援更詳細的記錄和其他縮減的效能最佳化。 Azure Functions Core Tools 在本機電腦上執行時,會將 AZURE_FUNCTIONS_ENVIRONMENT 設定為 Development 。 您無法在 local.settings.json 檔案中覆寫此設定。 |
當您需要將 Azure 中的執行階段環境變更為 Production
以外的環境,請使用此設定,而非使用 ASPNETCORE_ENVIRONMENT
。 如需詳細資訊,請參閱以環境為基礎的啟動類別和方法。
此設定不適用於 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
。
機碼 | 範例值 |
---|---|
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 程式代碼時使用 Release
模式; false
表示使用偵錯模式。 預設值為 true
。
機碼 | 範例值 |
---|---|
AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
要啟用的搶鮮版 (Beta) 功能清單 (以逗號分隔)。 這些旗標所啟用的搶鮮版 (Beta) 功能還不適合在生產環境內使用,但在上線之前可以針對實驗使用予以啟用。
機碼 | 範例值 |
---|---|
AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
將 EnableProxies
新增至此清單,以在規劃移轉至 Azure APIM 時,於 Functions 執行階段 4.x 版上重新啟用 Proxy。 如需詳細資訊,請參閱在 Functions v4.x 中重新啟用 Proxy。
AzureWebJobsKubernetesSecretName
指出用於儲存金鑰的 Kubernetes 秘密資源。 僅在 Kubernetes 中執行時才支援。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 kubernetes
。 若未設定 AzureWebJobsKubernetesSecretName
,則會將存放庫視為唯讀。 在此情況下,必須在部署之前產生這些值。 Azure Functions Core Tools 會在部署至 Kubernetes 時自動產生這些值。
機碼 | 範例值 |
---|---|
AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultClientId
使用者指派受控識別的用戶端識別碼,或用來存取儲存金鑰之保存庫的應用程式註冊。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 keyvault
。 於 4.x 版和更新版本的 Functions 執行階段中支援。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultClientSecret
使用者指派受控識別的用戶端識別碼秘密,或用來存取儲存金鑰之保存庫的應用程式註冊。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 keyvault
。 於 4.x 版和更新版本的 Functions 執行階段中支援。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultName
此設定已淘汰,只有在 Azure Functions 執行階段 3.x 版上執行時使用。
用來儲存金鑰的金鑰保存庫執行個體名稱。 此設定僅適用於不再支援的 Azure Functions 執行階段 3.x 版。 針對 4.x 版,請改用 AzureWebJobsSecretStorageKeyVaultUri
。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 keyvault
。
保存庫具有的存取原則必須對應至裝載資源的系統指派受控識別。 存取原則應該授與身分識別下列秘密權限:Get
、Set
、List
和 Delete
。
函式在本機執行時,會使用開發人員身分識別,而且 local.settings.json 檔案中必須有設定。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
若要深入了解,請參閱管理金鑰儲存體。
AzureWebJobsSecretStorageKeyVaultTenantId
用來存取儲存金鑰之保存庫的應用程式註冊租用者識別碼。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 keyvault
。 於 4.x 版和更新版本的 Functions 執行階段中支援。 若要深入了解,請參閱管理金鑰儲存體。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
用來儲存金鑰的金鑰保存庫執行個體 URI。 於 4.x 版和更新版本的 Functions 執行階段中支援。 這是針對金鑰儲存體使用金鑰保存庫執行個體的建議設定。 要使用此設定,就必須將 AzureWebJobsSecretStorageType
設定為 keyvault
。
AzureWebJobsSecretStorageKeyVaultUri
值應該是 [金鑰保存庫概觀] 索引標籤中顯示的保存庫 URI 完整值,包括 https://
。
保存庫具有的存取原則必須對應至裝載資源的系統指派受控識別。 存取原則應該授與身分識別下列秘密權限:Get
、Set
、List
和 Delete
。
函式在本機執行時,會使用開發人員身分識別,而且 local.settings.json 檔案中必須有設定。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.net |
若要深入了解,請參閱使用 Azure Functions 的 Key Vault 參考。
AzureWebJobsSecretStorageSas
用於金鑰儲存體之第二個儲存體帳戶的 Blob 儲存體 SAS URL。 在預設情況下,函式會使用 AzureWebJobsStorage
中設定的帳戶。 使用此秘密儲存體選項時,請確定 AzureWebJobsSecretStorageType
未明確設定或設為 blob
。 若要深入了解,請參閱管理金鑰儲存體。
機碼 | 範例值 |
---|---|
AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
指定要用於金鑰儲存的存放庫或提供者。 金鑰在儲存前一律會使用函數應用程式獨有的秘密來加密。
機碼 | 值 | 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、佇列和資料表。 如需詳細資訊,請參閱儲存體帳戶需求。
機碼 | 範例值 |
---|---|
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.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName
。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體。
AzureWebJobsStorage__queueServiceUri
在使用身分識別型儲存體連線時,請設定儲存體帳戶佇列服務的資料平面 URI。
機碼 | 範例值 |
---|---|
AzureWebJobsStorage__queueServiceUri | https://<STORAGE_ACCOUNT_NAME>.queue.core.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName
。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體。
AzureWebJobsStorage__tableServiceUri
在使用身分識別型儲存體連線時,請設定儲存體帳戶資料表服務的資料平面 URI。
機碼 | 範例值 |
---|---|
AzureWebJobsStorage__tableServiceUri | https://<STORAGE_ACCOUNT_NAME>.table.core.windows.net |
在主權雲端中,或是在使用自訂 DNS 時,請使用此設定,而非使用 AzureWebJobsStorage__accountName
。 如需詳細資訊,請參閱使用身分識別連線至主機儲存體。
AzureWebJobs_TypeScriptPath
用於 TypeScript 之編譯器的路徑。 可讓您覆寫預設值 (需要的話)。
機碼 | 範例值 |
---|---|
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 背景工作角色使用共用記憶體時,設定共用記憶體的大小 (以位元組為單位)。 若要深入了解,請參閱共用記憶體。
機碼 | 範例值 |
---|---|
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 |
支援下列主要執行階段版本值:
值 | 執行階段目標 | 註解 |
---|---|---|
~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
。 See Updating to target .NET 8 for complete instructions, including other required configuration values.
機碼 | 範例值 |
---|---|
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
。
機碼 | 值 | 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個字節。
機碼 | 範例值 |
---|---|
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
。 Function 引動會在語言背景工作處理序之間平均散發。 語言背景工作處理序每隔 10 秒繁衍一次,直到達到 FUNCTIONS_WORKER_PROCESS_COUNT
所設定的計數為止。 使用多種語言的背景工作處理序與縮放不同。 當您的工作負載混合使用 CPU 繫結和 I/O 繫結引動時,請考慮使用此設定。 此設定適用于所有語言執行階段,但流程 (FUNCTIONS_WORKER_RUNTIME=dotnet
) 中執行的 .NET 除外。
機碼 | 範例值 |
---|---|
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 背景工作處理序在處理序啟動時和之後的每個 MDMaxBackgroundUpgradePeriod
,都會起始檢查 PowerShell 資源庫上的模組升級。 當 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
此設定的值表示 Python 應用程式自訂套件的額外索引 URL,在 --index-url
以外供使用。 當您需要使用額外套件索引中找到的自訂相依性來執行遠端組建時,請使用此設定。 應遵循與 --index-url
相同的規則。
機碼 | 範例值 |
---|---|
PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
若要深入了解,請參閱 --extra-index-url
的 pip
文件,及 Python 開發人員參考中的自訂相依性。
專案
持續部署設定,會向 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 背景工作角色傳送至函式主機。 偵錯或追蹤 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 語言背景工作用來執行函式引動的執行緒數目上限,對於 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 |
Elastic Premium 和 Dedicated (App Service) 方案 (標準和更高版本) 需要此應用程式設定。 在使用量方案上執行時不支援。
注意
若儲存體帳戶由相同方案中的多個函數應用程式共用,當您路由至其中的內容共用時,必須特別小心。 如需詳細資訊,請參閱儲存體考量一文中的始終透過虛擬網路進行路由傳送。
WEBSITE_CONTENTSHARE
Functions 用來儲存函式應用程式之程式碼和設定檔的檔案共用名稱。 事件驅動的縮放方案需要此內容。 與 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
搭配使用。 預設值是執行階段產生的唯一字串,會以函式應用程式名稱開頭。 如需詳細資訊,請參閱儲存體帳戶連線設定。
機碼 | 範例值 |
---|---|
WEBSITE_CONTENTSHARE | functionapp091999e2 |
Windows 和 Linux 上的使用量和進階方案應用程式需要此設定。 專用方案應用程式不需要此設定,Functions 不會動態調整這些應用程式。
在建立函式應用程式時會建立共用。 變更或移除此設定可能會導致您的函式應用程式無法啟動。 若要深入了解,請參閱此錯誤疑難排解文章。
使用 Azure Resource Manager (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 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 版本。 您應該使用波狀符號 (~) 讓執行階段使用目標主要版本的最新可用版本。 例如,當設為 ~18
時,會使用最新的 Node.js 18 版本。 在使用波狀符號將主要版本作為目標時,您不需要手動更新次要版本。
機碼 | 範例值 |
---|---|
WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
在進階方案上執行的函數應用程式上執行位置交換時,當應用程式所使用的專用儲存體帳戶受到網路限制時,交換可能會失敗。 此失敗是由 Functions 和 App Service 所共用的舊版應用程式記錄功能所造成。 此設定會覆寫該舊版記錄功能,並允許交換發生。
Key | 範例值 |
---|---|
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。
Key | 範例值 |
---|---|
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 設定具有額外的驗證檢查,以確保應用程式可以正確啟動。 當函式應用程式因網路限制或其他限制因素,而無法正確呼叫下游儲存體帳戶或 Key Vault 時,應用程式設定的建立會失敗。 當 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 database 中所示。 |
注意
在使用量方案中於 Linux 上執行時,目前不支援 WEBSITE_TIME_ZONE
和 TZ
。 在此情況下,設定 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
可在使用量方案上停用冷啟動最佳化。
機碼 | 範例值 |
---|---|
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
的設定值表示所有應用程式流量都是透過虛擬網路路由傳送。 在 Elastic Premium 和 Dedicated 主控方案中設定區域性虛擬網路整合時,您將需要此設定。 當虛擬網路 NAT 閘道用來定義靜態輸出 IP 位址時也會使用。
機碼 | 範例值 |
---|---|
WEBSITE_VNET_ROUTE_ALL | 1 |
WEBSITES_ENABLE_APP_SERVICE_STORAGE
指出是否在所縮放的執行個體之間共用 /home
目錄,預設值為 true
。 在容器中部署函式應用程式時,請將此項目設定為 false
。
App Service 網站設定
某些組態必須在 App Service 層級維護,例如網站設定,例如語言版本。 這些設定會在入口網站中管理,方法是使用 REST API,或使用 Azure CLI 或 Azure PowerShell。 視您的執行階段語言、OS 和版本而定,以下是可能需要的網站設定:
AcrUseManagedIdentityCreds
指出映像是否使用受控識別驗證從 Azure Container Registry 實例取得。 的值 true
要求使用受控識別,這是建議透過預存的驗證認證作為安全性最佳做法。
AcrUserManagedIdentityID
指出從 Azure Container Registry 實例取得映射時要使用的受控識別。 需要將 AcrUseManagedIdentityCreds
設定為 true
。 以下是有效的值:
值 | Description |
---|---|
system |
系統會使用函式應用程式的系統指派受控識別。 |
<USER_IDENTITY_RESOURCE_ID> |
使用者指派受控識別的完整資源標識碼。 |
您指定的身分識別必須新增至 ACRPull
容器登錄中的角色。 如需詳細資訊,請參閱 使用映像在 Azure 上建立和設定函式應用程式。
alwaysOn
在執行於專用 (App Service) 方案中的函數應用程式上,Azure Functions 執行階段會在處於非使用中狀態幾分鐘後進入閒置階段,此時只有要求 HTTP 觸發程序才能「喚醒」函數應用程式。 若要確定非 HTTP 觸發的函式 (包括計時器觸發函式) 能夠正確執行,請將 alwaysOn
網站設定設為 true
的值,以便為函數應用程式啟用 [一律開啟]。
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 執行階段和語言的最新次要版本更新與安全性修正。 請定期從最新的基礎映像更新容器,並重新部署更新後的容器版本。
netFrameworkVersion
設定 C# 函式的特定 .NET 版本。 如需詳細資訊,請參閱在 Azure 中更新函式應用程式。
powerShellVersion
設定函式執行所在的特定 PowerShell 版本。 如需詳細資訊,請參閱變更 PowerShell 版本。
在本機執行時,您會改用 local.settings.json 檔案中的 FUNCTIONS_WORKER_RUNTIME_VERSION
設定。
vnetContentShareEnabled
在 Premium 方案中執行的應用程式會使用檔案共用來儲存內容。 此內容共用的名稱會儲存在 WEBSITE_CONTENTSHARE
應用程式設定中,而其連接字串會儲存在 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
中。 若要透過虛擬網路路由傳送函式應用程式與內容共用之間的流量,則您也必須將 vnetContentShareEnabled
設定為 true
。 在 Elastic Premium 和 Dedicated 主控方案中將您的儲存體帳戶限制為虛擬網路時,需要啟用此網站屬性。
注意
若儲存體帳戶由相同方案中的多個函數應用程式共用,當您路由至其中的內容共用時,必須特別小心。 如需詳細資訊,請參閱儲存體考量一文中的始終透過虛擬網路進行路由傳送。
此網站屬性會取代舊版的 WEBSITE_CONTENTOVERVNET
設定。
vnetImagePullEnabled
Azure Functions 支援在 Linux 容器中執行的函式應用程式。 若要從虛擬網路內的容器登錄中進行連線和提取,您必須將 vnetImagePullEnabled
設定為 true
。 Elastic Premium 和 Dedicated 主控方案支援此網站屬性。 Flex Consumption 方案不會依賴網站屬性或應用程式設定來設定網路功能。 如需詳細資訊,請參閱 Flex Consumption 方案淘汰。
vnetRouteAllEnabled
表示應用程式的所有輸出流量是否透過虛擬網路路由傳送。 true
的設定值表示所有應用程式流量都是透過虛擬網路路由傳送。 在 Elastic Premium 和 Dedicated 方案中設定區域性虛擬網路整合時,請使用此設定。 當虛擬網路 NAT 閘道用來定義靜態輸出 IP 位址時也會使用。 如需詳細資訊,請參閱設定應用程式路由。
此網站設定會取代舊版的 WEBSITE_VNET_ROUTE_ALL 設定。
彈性使用量方案淘汰
在彈性使用量方案中,這些網站屬性和應用程式設定已被取代,且不應該在建立函數應用程式資源時使用:
設定/屬性 | 原因 |
---|---|
ENABLE_ORYX_BUILD |
在 Flex 使用量中部署時,由 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 使用量中部署時,由 remoteBuild 參數取代 |
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING |
由 functionAppConfig 的部署區段所取代 |
WEBSITE_CONTENTOVERVNET |
未用於 Flex 使用量的網路功能 |
WEBSITE_CONTENTSHARE |
由 functionAppConfig 的部署區段所取代 |
WEBSITE_DNS_SERVER |
DNS 繼承自 Flex 中的整合式虛擬網路 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT |
在 properties.functionAppConfig.scaleAndConcurrency 中已由 maximumInstanceCount 取代 |
WEBSITE_NODE_DEFAULT_VERSION |
在 properties.functionAppConfig.runtime 中已由 version 取代 |
WEBSITE_RUN_FROM_PACKAGE |
未用於 Flex 使用量中的部署 |
WEBSITE_SKIP_CONTENTSHARE_VALIDATION |
Flex 使用量中未使用內容共用 |
WEBSITE_VNET_ROUTE_ALL |
未用於 Flex 使用量的網路功能 |
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 使用量的網路功能 |
properties.vnetContentShareEnabled |
未用於 Flex 使用量的網路功能 |
properties.vnetImagePullEnabled |
未用於 Flex 使用量的網路功能 |
properties.vnetRouteAllEnabled |
未用於 Flex 使用量的網路功能 |
properties.windowsFxVersion |
無效 |