搭配使用 Amazon EFS 與 Lambda - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配使用 Amazon EFS 與 Lambda

Lambda 與 Amazon Elastic File System (Amazon EFS) 整合,以支援 Lambda 應用程式的安全共用檔案系統存取。您可以設定函數,以便透過 VPC 內的本機網路,使用 NFS 協定進行初始化時,掛載檔案系統。Lambda 會管理連線,並加密進出檔案系統的所有流量。

檔案系統和 Lambda 函數必須位於相同的區域中。帳戶中的 Lambda 函數可以掛載不同帳戶中的檔案系統。在此案例中,您可以在函數 VPC 和檔案系統 VPC 之間設定 VPC 對等互連。

注意

若要設定函數以連線至檔案系統,請參閱設定 Lambda 函數的檔案系統存取權

Amazon EFS 支援檔案鎖定, 以防止多個函數嘗試同時寫入同一個檔案系統時發生損毀。Amazon EFS 中的鎖定功能遵循適用於建議型鎖定的 NFS v4.1 協定,可讓您的應用程式使用整個檔案和位元組範圍鎖定。

Amazon EFS 提供一些選項,以根據應用程式的需求自訂您的檔案系統,以便在擴展時保持高效能。有三個主要因素需要考量:連線數量、輸送量 (以每秒 MiB 為單位) 和 IOPS。

配額

如需檔案系統限制的詳細資訊,請參閱 Amazon Elastic File System 使用者指南中的 Amazon EFS 檔案系統的配額

為避免擴展、輸送量和 IOPS 發生問題,請監控 Amazon EFS 傳送給 Amazon CloudWatch 的指標。如需在 Amazon EFS 中監控的概觀,請參閱 Amazon Elastic File System 使用者指南中的監控 Amazon EFS

連線

Amazon EFS 每個檔案系統最多支援 25,000 個連線。在初始化期間,函數的每個執行個體都會建立一個與其檔案系統的單一連線,該連線會在整個叫用中持續存在。這表示您可以跨一或多個連線到檔案系統的函數,達到 25,000 個並行。若要限制函數建立的連線數量,請使用保留的並行

然而,當您在擴展時向函數程式碼或組態進行變更,函數執行個體數量會暫時增加超過目前並行。Lambda 會佈建新的執行個體,以處理新的要求,在就職行個體關閉其與檔案系統的連線之前,會有一些延遲。為了避免在部署期間達到連線數量上限,請使用輪流部署。透過輪流部署,每次進行變更時,都會將流量逐漸轉移至新版本。

如果您從其他服務 (例如 Amazon EC2) 連線到相同的檔案系統,您應該也會注意到 Amazon EFS 中連線的擴展行為。檔案系統支援在一次高載中建立最多 3,000 個連線,之後每分鐘支援 500 個新連線。

若要監控並觸發連線上的警示,請使用 ClientConnections 指標。

輸送量

擴展時,也有可能超過檔案系統的輸送量上限。在高載模式 (預設值) 中,檔案系統具有低基準輸送量,可隨其大小呈線性擴展。若要允許高載活動,會授與檔案系統高載額度,允許其使用 100 MIB/秒或更多的輸送量。額度會持續累計,而且每次讀取和寫入操作都會耗用這些額度。如果檔案系統用完額度,它會節流超出基準輸送量的讀取和寫入操作,這可能會導致叫用逾時。

注意

如果您使用佈建的並行,即使在閒置時,您的函數也可以取用高載額度。使用佈建並行,在叫用函數之前,Lambda 會初始化函數的執行個體,並每隔幾個小時回收一次執行個體。如果您在初始化期間使用附加檔案系統上的檔案,則此活動可以使用高載額度。

若要監控並觸發輸送量的警示,請使用 BurstCreditBalance 指標。當您的函數並行數量很低,該指標應該增加,當並行數量很高,則應該減少。如果在低活動期間,指標持續減少或累計不足以涵蓋尖峰流量,您可能需要限制函數的並行數量,或啟用佈建的輸送量

IOPS

每秒輸入/輸出操作數量 (IOPS) 是檔案系統處理的讀取和寫入操作數量的測量。在一般用途模式中,IOPS 受到限制,有利於較低的延遲,這對大多數應用程式很有幫助。

若要在一般用途模式中監控 IOPS 並警示,請使用 PercentIOLimit 指標。如果此指標達到 100%,您的函數可能會逾時等待讀取和寫入操作完成。