共用方式為


Azure Functions Flex Consumption 方案裝載

Flex Consumption 是以 Linux 為基礎的 Azure Functions 主控方案,是依照使用量計費,按使用量付費的無伺服器計費模型。 它引進私人網路、執行個體記憶體大小選取項目,以及仍以無伺服器模型為基礎的快速/大規模擴增功能,讓您更有彈性和自訂能力。

重要

Flex 使用量方案目前為預覽狀態。 如需使用此主控方案時最新限制的清單,請參閱考量事項。 如需預覽期間最新的計費相關資訊,請參閱計費

您可以在 Flex Consumption 方案範例存放庫中,檢閱採用 Flex Consumption 方案的端對端範例。

福利

Flex Consumption 方案以 Consumption 方案的優點為基礎,包括動態調整和執行型計費方式。 使用 Flex Consumption 時,您還會取得下列額外功能:

下表協助您直接比較 Flex Consumption 與 Consumption 主控方案的功能:

功能 耗用 Flex Consumption
調整至零 ✅ 是 ✅ 是
調整行為 事件驅動 事件驅動 (快速)
虛擬網路 ❌ 未支援 ✅ 支援
專用計算 (減輕冷啟動) ❌ 無 ✅ 隨時可用執行個體 (選用)
計費 僅執行時間 執行時間 + 隨時可用執行個體
擴增執行個體 (上限) 200 1000

如需 Flex Consumption 方案與 Consumption 方案和所有其他方案與裝載類型的完整比較,請參閱函式調整和裝載選項

虛擬網路整合

Flex Consumption 新增對虛擬網路整合的支援,將 Consumption 方案的傳統優點發揚光大。 應用程式以 Flex Consumption 方案執行時,可以連線到虛擬網路內保護的其他 Azure 服務。 同時仍可讓您利用無伺服器計費和縮放,以及 Flex Consumption 方案的調整和輸送量優點。 如需詳細資訊,請參閱啟用虛擬網路整合

執行個體記憶體

在 Flex Consumption 方案建立函數應用程式時,您可以選取應用程式執行使用的執行個體記憶體大小。 請參閱計費,了解執行個體記憶體大小如何影響函數應用程式的成本。

Flex Consumption 目前提供 2,048 MB 和 4,096 MB 的執行個體記憶體大小選項。

決定應用程式要搭配使用的執行個體記憶體大小時,以下是一些需要考慮的事項:

  • 2,048 MB 執行個體記憶體大小是預設值,應該用於大部分案例。 針對您的應用程式需要更多並行或更高處理能力的案例,請使用 4,096 MB 的執行個體記憶體大小。 如需詳細資訊,請參閱設定執行個體記憶體
  • 您可以隨時變更執行個體的記憶體大小。 如需詳細資訊,請參閱設定執行個體記憶體
  • 執行個體資源會在函式程式碼與 Azure Functions 主機之間共用。
  • 執行個體記憶體愈大,每個執行個體可以處理的並行執行就愈多,或是 CPU 或記憶體工作負載就愈密集。 特定調整決策取決於工作負載。
  • HTTP 觸發程序的預設並行取決於執行個體記憶體大小。 如需詳細資訊,請參閱 HTTP 觸發程序並行
  • 可用的 CPU 和網路頻寬與特定執行個體大小成正比。

根據個別函式調整

並行是決定 Flex Consumption 函數應用程式調整的關鍵因素。 為了改善各種觸發程序類型的應用程式調整效能,Flex Consumption 方案提供更為決定性的方式,以個別函式為基礎調整您的應用程式。

這種按照函式調整行為是裝載平台的一部分,因此您不需要設定應用程式或變更程式碼。 如需詳細資訊,請參閱事件驅動調整一文中的按照函式調整

在每個函式調整中,HTTP、Blob (事件方格) 和 Durable 觸發程序都是特殊案例。 應用程式中的所有 HTTP 觸發函式都會在相同執行個體分在同一組並一起調整,而且所有 Durable 觸發函式 (協調流程、活動或實體觸發程序) 都會在相同執行個體分在同一組並一起調整,所有 Blob (Azure 事件方格) 函示都會在相同執行個體分在同一組並一起調整。 應用程式中的所有其他函式則會個別調整至自己的執行個體。

隨時待命執行個體

Flex Consumption 包含隨時可用功能,可讓您選擇隨時執行並指派給每個函式調整群組或函式的執行個體。 對於需要隨時準備好處理要求所需執行個體數目下限的案例而言,這是絕佳的選項,例如可減少應用程式的冷啟動延遲。 預設值是 0 (零)。

例如,如果您為 HTTP 函式群組將隨時可用設定為 2,則平台會保留兩個執行個體隨時執行,並且為應用程式中的 HTTP 函式指派給應用程式。 這些執行個體正在處理您的函式執行,不過視並行設定而定,平台會以隨需執行個體擴大為兩個執行個體以上。

若要了解如何設定隨時可用的執行個體,請參閱設定隨時可用執行個體計數

並行

並行是指應用程式執行個體上同時執行的執行個體數目。 您可以設定每個執行個體在任何指定時間應該處理的同時執行數目上限。 如需詳細資訊,請參閱 HTTP 觸發程序並行

並行對應用程式調整方式有直接影響,因為在較低的並行層級,您需要更多執行個體來處理函式的事件驅動需求。 雖然您可以控制並微調並行,但我們提供適用於大部分案例的預設值。 若要了解如何設定 HTTP 觸發程序函式的並行限制,請參閱設定 HTTP 並行限制

部署

彈性取用方案中的部署會遵循單一路徑。 建立專案代碼並壓縮到應用程式套件之後,它會部署到 Blob 記憶體容器。 啟動時,您的應用程式會擷取套件並從中執行。 根據預設,用來儲存內部主機中繼資料的相同儲存體帳戶 (AzureWebJobsStorage) 也會用作部署容器。 不過,您可使用替代儲存體帳戶,或藉由設定應用程式的部署設定來選擇您慣用的驗證方法。 在簡化部署路徑時,不再需要應用程式設定影響部署行為。

計費

在 Flex Consumption 方案中執行應用程式時,決定成本有兩種模式。 每個模式都是以每個執行個體為基礎來決定。

計費模式 描述
隨選 在 [隨選] 模式中執行時,您只需根據函式程式碼在可用執行個體上執行的時間支付費用。 在隨選模式中,不需要最低執行個體計數。 計費項目如下:

• 每個隨需執行個體主動執行函式時佈建的記憶體總數 (以 GB-秒為單位),減去每月免費授與的 GB-秒。
• 執行總數,減去每月執行的免費授與 (數目)。
隨時可用 您可以設定一個或多個執行個體,指派給特定觸發程序類型 (HTTP/Durable/Blob) 和個別函式,讓其隨時都可用於處理要求。 啟用任何隨時可用執行個體時,計費項目如下:

• 在所有隨時可用執行個體上佈建的記憶體總數,也稱為基準 (以 GB-秒為單位)。
• 每個隨時可用執行個體主動執行函式時佈建的記憶體總數 (以 GB-秒為單位)。
• 執行總數。

使用隨時可用計費時,沒有免費授權。

這兩種執行模式的可計費執行期間下限為 1,000 毫秒。 在過去,計費活動期間會四捨五入到最接近的 100 毫秒。 您可以在監視參考中找到 Flex Consumption 方案計費計量的詳細資料。

如需在 Flex Consumption 方案中執行時如何計算成本的詳細資料,包括範例,請參閱以使用量為基礎的成本

如需執行價格的最新資訊、隨時可用基準成本,以及隨需執行的免費授與,請參閱 Azure Functions 定價頁面

支援的語言堆疊版本

下表顯示 Flex Consumption 應用程式目前支援的語言堆疊版本:

語言堆疊 所需版本
C# (隔離流程模式)1 .NET 82
Java JAVA 11、JAVA 17
Node.js 節點 20
PowerShell PowerShell 7.4
Python Python 3.10、Python 3.11

不支援 1C# 內含式模式。 相反地,您必須移轉 .NET 程式碼專案,在隔離式背景工作角色模型中執行
2需要 Microsoft.Azure.Functions.Worker 版本 1.20.0 或更新版本,以及 Microsoft.Azure.Functions.Worker.Sdk 版本 1.16.2 或更新版本。

區域訂用帳戶記憶體配額

目前在預覽版中,指定訂用帳戶中的每個區域都有 512,000 MB 的記憶體限制,適用於以 Flex Consumption 方案執行之應用程式的所有執行個體。 這表示,在指定的訂用帳戶和區域中,只要執行個體記憶體大小和計數保持在配額限制下,您就可以擁有任何的執行個體記憶體大小和計數組合。 例如,下列每個範例都表示已達到配額,而且應用程式會停止調整:

  • 您有一個 2048GB 應用程式調整為 100 個執行個體,而第二個 2048GB 應用程式則調整為 150 個執行個體
  • 您有一個 2048GB 應用程式調整提高至 250 個執行個體
  • 您有一個 4096GB 應用程式調整提高至 125 個執行個體
  • 您有一個 4096GB 應用程式調整為 100 個執行個體,而另一個 2048GB 應用程式則調整為 50 個執行個體

視需求而定,您可以增加此配額,讓您的 Flex Consumption 應用程式進一步調整。 如果您的應用程式需要較大的配額,請建立支援票證。

已被取代的屬性和設定

在 Flex Consumption 中,Bicep、ARM 範本和整體控制平面中使用的許多標準應用程式設定和網站設定屬性都已被取代或已移動,且不應在建立自動化函數應用程式資源時使用。 如需詳細資訊,請參閱 Flex Consumption 方案淘汰

考量

在目前預覽期間使用 Flex Consumption 方案時,請記住以下其他考量事項:

  • VNet 整合遵循下列指示,確定訂用帳戶已啟用 Microsoft.App Azure 資源提供者。 彈性取用應用程式所需的子網路委派為 Microsoft.App/environments
  • 觸發程序:除了 Kafka、Azure SQL 和 SignalR 觸發程序之外,所有觸發程序都受到完整支援。 Blob 儲存體觸發程序僅支援事件方格來源。 非 C# 函數應用程式必須使用延伸模組搭售方案的版本 [4.0.0, 5.0.0) 或更新版本。
  • 區域
    • 目前並非所有的區域都有支援。 若要深入了解,請參閱檢視目前支援的區域
    • 有暫時性限制:建立新應用程式的 App Service 配額限制也會套用至 Flex Consumption 應用程式。 如果您看到以下錯誤:「您的訂閱此區域有 0 個執行個體配額。 請嘗試選取其他區域或 SKU。」請提出支援票證,以便解除封鎖您的應用程式建立。
  • 部署:目前不支持這些部署相關功能:
    • 部署位置
    • 使用 Azure DevOps 工作進行持續部署 (AzureFunctionApp@2)
    • 使用 GitHub Actions 進行持續部署 (functions-action@v1)
  • 調整:預覽的最低調整比例上限為 40。 目前支援的最高值為 1000
  • 授權:目前不支援 EasyAuth。 在彈性取用方案應用程式中啟用 EasyAuth 時,目前不會封鎖未經驗證的來電者。
  • CORS:目前不支援 CORS 設定。 如果 CORS 已針對彈性取用應用程式設定 CORS,就可能發生例外狀況。
  • 受控相依性:Flex Consumption 不支援 PowerShell 中的受控相依性。 您必須改為定義自己的自訂模組

Azure Functions 裝載選項在 Flex Consumption 方案中建立和管理函數應用程式