管理 Lambda 預留並行 - AWS Lambda

管理 Lambda 預留並行

有兩種類型的並行控制可用:

  • 預留並行 - 預留並行可保證函數的並行執行個體的最大數量。當某個函數具有預留並行時,其他函數都無法使用該並行。設定函數的預留並行不收費。

  • 佈建並行 - 佈建並行會初始化請求的執行環境數目,以便立即回應函數的叫用。請注意,設定佈建並行會使您的 AWS 帳戶產生費用。

本主題詳細說明如何管理及設定預留並行。如果您想減少函數的延遲,請使用佈建並行

並行數量是函數在任何指定時間服務的請求數。呼叫函數時,Lambda 會配置執行個體以處理事件。當函數程式碼完成執行時,它會處理另一項請求。如果在請求仍在處理時再次呼叫該函數,則會配置另一個執行個體,進而增加函數的並行數量。您帳戶中所有函數的總計並行受到每個區域配額的限制。

若要了解並行如何與擴展互動,請參閱 Lambda 函數擴展

設定預留並行

若要管理函數的預留並行設定,請使用 Lambda 主控台。

預留函式的並行

  1. 開啟 Lambda 主控台中的 Functions (函數) 頁面

  2. 選擇一個函數。

  3. 選擇 Configuration (組態),然後選擇 Concurrency (並行)

  4. Concurrency (並行) 下,選擇 Edit (編輯)

  5. 選擇 Reserve concurrency (預留並行)。輸入要為函式預留的並行數量。

  6. 選擇 Save (儲存)。

您可以預留的上限,如所示的 Unreserved account concurrenc (未預留的帳戶並行) 值,其比沒有預留並行的函數少 100 個並行。若要節流函數,請將預留並行設定為零。此動作會停止處理任何事件,直到您移除限制為止。

以下範例顯示兩個包含預留並行集區的函數,以及由其他函數使用的未預留並行集區。當集區中的所有並行皆在使用中時,便會發生調節錯誤。


        配置到兩個函數的預留並行。

Legend

  • 函數並行

  • 預留的並行

  • 未預留的並行

  • 調節

預留並行具有以下效果。

  • 其他函數無法防止您的函數擴展 - 您帳戶在相同區域中沒有預留並行的所有函數,都會共用未預留的並行集區。如果沒有預留並行,其他函數可以用盡所有可用的並行。這可以視需要防止您的函數向上擴展

  • 您的函數無法不受控地擴展 - 預留並行也會限制您的函數,使其無法使用未預留集區中的並行 (超過其最大並行)。您可以預留並行以防止函數使用區域中的所有可用並行,或過載下游資源。

設定各函數並行會影響其他函數可用的並行集區。若要避免發生問題,請限制可以使用 PutFunctionConcurrencyDeleteFunctionConcurrency API 作業的使用者數目。

透過 Lambda API 設定並行

若要使用 AWS CLI 或 AWS 開發套件管理並行設定,請使用下列 API 作業。

若要透過 AWS CLI 來設定預留並行,請使用 put-function-concurrency 命令。下列命令會預留名為 my-function 之函數的 100 個並行:

aws lambda put-function-concurrency --function-name my-function --reserved-concurrent-executions 100

您應該會看到下列輸出:

{ "ReservedConcurrentExecutions": 100 }