本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多區域部署
對於 MultiRegion 和 PerRegion 端點,Lambda 會將執行期成品複寫到所有目標區域,讓您的應用程式可以為接近最終使用者的流量提供服務。您完全從主要區域管理 Web 函數。複寫的資源在複本區域中不可見或無法修改。
下圖顯示主區域中的控制平面如何準備修訂,並將其程式碼和組態複寫到複本區域,以及用戶端如何到達 MultiRegion 和 PerRegion 端點。複本區域沒有控制平面。MultiRegion端點有一個全域網域,依延遲路由,而非依區域運作狀態路由。對於 PerRegion 端點,您可以管理用戶端如何到達每個區域中的區域網域,例如使用 Route 53 記錄或 CloudFront。您可以在建立端點時設定端點類型和區域,之後無法變更它們。
Lambda 複寫的內容
Lambda 會將下列項目複寫到每個目標區域:
-
預備程式碼成品 – Lambda 從版本控制的 Amazon S3 來源物件衍生的內部執行時間成品。
-
修訂組態 – 逾時、並行、環境變數和執行時間設定。
-
以資源為基礎的政策 – 連接到 Web 函數的政策,授予其存取權。
-
標籤 – Web 函數上的標籤。
Web 函數配額適用於每個 AWS 區域。每個目標區域會在複寫的端點上強制執行自己的帳戶配額。例如,複本區域中的執行環境擴展受該區域的帳戶 vCPU 配額限制。如需帳戶配額,請參閱 帳戶配額。
複本可見性
複寫的資源不會在複本區域中顯示。Web 函數的控制平面僅在其主區域中提供,因此所有 API 請求都必須傳送至主區域。其中包含:
-
列出、取得和描述 Web 函數、其修訂版及其端點的請求。
-
建立、更新和刪除函數、修訂和端點組態的請求。
傳送至複本區域的控制平面端點的 API 請求會失敗,無論發起人位於何處。複寫的執行時間成品僅存在於資料平面為流量提供服務。
複寫發生時
當您建立或更新 MultiRegion 或 PerRegion 端點時,會觸發複寫。具體而言,複寫會在下列情況發生:
-
您可以使用指向修訂的修訂權重來建立 MultiRegion 或 PerRegion 端點。
-
您可以更新MultiRegion或 PerRegion 端點上的修訂權重,以包含新的修訂。
-
您可以在多區域
authTypescalingConfig或 PerRegion 端點上更新其他端點設定,例如throttleConfig、 或 。 MultiRegion
僅建立修訂不會觸發複寫。修訂必須包含在已設定目標區域的端點修訂權重中。由於 MultiRegion 和 PerRegion 端點只能使用已停用的自動部署模式,因此複寫一律是您進行端點變更的結果。
轉接的運作方式
路由行為取決於端點類型:
- MultiRegion
-
Lambda 提供單一全域網域名稱。使用以延遲為基礎的路由來路由請求。根據 Route 53 隨著時間收集的延遲測量,請求會路由到通常為發起人提供最低網路延遲的區域。由於網際網路延遲變更,Lambda 不保證每個請求都會進入最低延遲區域。Lambda 會自動為您管理路由。
- PerRegion
-
Lambda 在每個目標區域中提供個別的區域網域名稱。您負責管理流量如何到達每個區域網域。例如,您可以設定自己的 Route 53 路由政策,或在區域網域前面放置 CloudFront 分佈。
複寫失敗
由於暫時性服務問題,複寫可能會在區域中失敗。如果您使用客戶受管金鑰加密 Web 函數,則目標區域中缺少的金鑰複本也會導致複寫失敗。如需多區域金鑰需求,請參閱 設定客戶受管金鑰。
複寫失敗的影響取決於您要建立或更新端點。如果 Lambda 建立端點時任何區域中的複寫失敗,則端點會移至失敗狀態,且無法在任何區域中叫用。若要重試,請刪除端點並再次建立。如果在端點更新期間某個區域中複寫失敗,則失敗僅限於該區域。端點會保持可叫用狀態,而其他區域會繼續正常運作。
當區域中的新修訂版複寫失敗時,該區域會繼續使用先前成功部署的修訂版來服務流量。端點不會復原。它會繼續在每個區域中以最後已知的良好狀態運作。
您可以在GetWebFunctionEndpoint回應的 regionalEndpoints 欄位中檢視每個區域的狀態和更新狀態。每個區域的項目包括:
-
state和stateReason– 區域在端點建立期間的部署狀態。 -
updateStatus和updateStatusReason– 該區域最近更新 (例如修訂部署) 的結果。
若要解決複寫失敗,請解決根本原因 (例如,在受影響的區域中建立 AWS KMS 金鑰複本)。若要在解決根本原因後重試失敗的端點更新,請UpdateWebFunctionEndpoint再次呼叫 。您可以重複相同的設定,或僅指定函數名稱和端點名稱。任一請求都會啟動對目標區域的新部署。這僅適用於端點處於作用中狀態時。如果端點建立失敗,請刪除端點並再次建立。
最終一致性
執行時間成品的複寫最終一致。在regionalEndpoints報告 updateStatus中每個區域的 之前,請勿假設每個區域都會執行新的組態Successful。
以資源為基礎的政策變更可以在程式碼和組態變更後完成傳播。在複寫時段,複本區域中的請求可能會根據舊版政策進行評估。如需詳細資訊,請參閱複寫和最終一致性。