選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

有關 Lambda 的常見問題

焦點模式
有關 Lambda 的常見問題 - AWS Lambda

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

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

在許多情況下,將功能分成不同的函數可以提供更好的效能,並讓應用程式更易於維護和擴展。但是,Lambda「單體」可能是遷移現有應用程式時有用的墊腳石。

單一 Lambda 函數應包含多少功能?

函數應在微服務中跨 AWS 服務的資料流程中執行單一任務。但是,如果功能任務太小,則可能會在應用程式中造成額外的延遲以及管理大量函數的開銷。函數的確切範圍取決於使用案例。

Lambda 型應用程式是否可以在多個區域中運作?

是,許多無伺服器服務為多個區域提供複寫和支援,包括 DynamoDB 和 Amazon S3。Lambda 函數可以作為部署管道的一部分部署在多個區域中,並且可以將 API Gateway 設定為支援此組態。請參閱此範例架構,示範如何達成此目標。

Lambda 函數是否可以按定時排程執行?

是,您可以在 EventBridge 中使用規則的排程表達式,來觸發 Lambda 函數。此格式使用 cron 語法,並且可以設定一分鐘精細度。如需範例,請參閱此教學課程

Lambda 函數如何在調用之間保留狀態?

在許多情況下,DynamoDB 資料表是理想的保留方式,因為其提供低延遲的資料存取,且可以使用 Lambda 服務進行擴展。如果您使用此服務,也可以將資料存放在 Amazon EFS for Lambda 中,這可提供檔案系統儲存的低延遲存取。

哪些類型的工作負載適合事件驅動型架構?

事件驅動型架構使用網路跨不同系統進行通訊,這會引入可變延遲。對於需要極低延遲的工作負載 (例如即時交易系統),此設計可能不是最佳選擇。但是,對於高度可擴展和可用的工作負載,或是具有不可預測流量模式的工作負載,事件驅動型架構可以提供有效的方式來符合這些需求。

為什麼 Lambda 服務具有 15 分鐘的函數限制?

Lambda 函數的存在是為了處理事件,而且大多數事件都會快速處理 – 通常在大多數生產調用時不到 1 秒。函數的持續時間取決於處理一個事件所花費的時間。雖然部分運算密集型工作負載可能需要數分鐘時間,但很少需要 15 分鐘才能完成。

如果您發現需要更長的持續時間,請確保您的函數程式碼正在處理單一事件、執行單一任務,以及使用本文件中概述的最佳實務。在許多情況下,函數可以重新設計,以處理單一事件並減少處理所需的時間量。

為什麼有預留並行的函數無法擴展以滿足傳入流量?

Lambda 函數的預留並行也會充當最大容量值。提高並行總數的軟性限制不影響此行為。如果您需要具有預留並行的函數來處理更多流量,您可以更新預留並行值,這會增加函數的最大輸送量。

為什麼具有佈建並行的函數仍然遇到冷啟動?

您可以新增 X-Ray 監控到函數,以測量 Lambda 向上擴展時的冷啟動。使用佈建並行的函數不會顯示冷啟動行為,因為執行環境在調用之前已做好準備。不過,佈建並行必須套用至函數的特定版本或別名,而非 $LATEST 版本。如果您持續看到冷啟動行為,請確定您正在調用已設定佈建並行的別名版本。

我的 Lambda 函數最適合使用什麼執行時期?

Lambda 與您選擇的執行時間無關。對於簡單的函數,Python 和 Node.js 等解釋型語言可提供最快的效能。對於運算較複雜的函數,像 Java 這樣的編譯語言通常初始化速度較慢,但在 Lambda 處理程序中的執行速度很快。執行時間的選擇也會受到開發人員偏好和熟悉語言的影響。

如何確定 SDK 版本不變?

嵌入式 SDKs 可能會在 AWS 發行新服務和功能時變更,恕不另行通知。您可以使用所需的特定版本建立 Lambda 層,鎖定 SDK 的版本。如此一來,即使內嵌於服務中的版本變更,函數也會永遠使用層中的版本。

如何測試 Lambda 型應用程式能否擴展以滿足預期的流量?

為確定您的應用程式如預期擴展,請在開發程序中使用負載測試來模擬預期的流量水準。

哪些工作負載適合佈建並行?

佈建並行旨在讓函數具有兩位數毫秒回應時間。一般而言,互動式工作負載能從這項功能中獲益最多。這些是使用者啟動請求的應用程式 (例如 Web 和行動應用程式),對延遲最敏感。資料處理管道等非同步工作負載通常對延遲較不敏感,因此通常不需要佈建並行。

為什麼我的 Lambda 函數沒有記錄任何輸出?

如果 Lambda 函數未記錄至 CloudWatch,請先確保呼叫者正在調用此函數。檢查呼叫服務的日誌以及指出事件已觸發函數的任何 CloudWatch 指標。接著,檢查 CloudWatch Logs 中是否有此函數。所有 Lambda 函數都會記錄三行,即使函數的自訂程式碼中沒有其他明確日誌記錄亦如此:

安全營運圖 7

如果儘管調用了此函數,但 CloudWatch 中沒有出現任何日誌記錄,請檢查此函數的許可。IAM 角色必須包含記錄許可,否則函數無法將日誌寫入服務。您可以將 AWSLambdaBasicExecutionRole 政策連接至函數的執行角色,以授予這些許可。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。