

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

# AWS Lambda 函數
<a name="lambda-functions-chapter"></a>

**提示**  
參加 Serverless 專家的免費實作研討會，了解如何使用最佳實務建置 Serverless 應用程式。在 AWS 體驗網站上[註冊免費無伺服器研討會](https://aws-experience.com/amer/smb/events/series/Get-Hands-On-With-Serverless?trk=188abe3e-9f94-4e84-aefb-398d944ad567%26sc_channel%3del)。

AWS Lambda 是一種運算服務，無需管理伺服器即可執行程式碼。您的程式碼會自動執行，並依據負載向上擴展或縮減規模，且採用按使用量付費的計價方式。若要開始使用，請參閱[建立第一個函數](getting-started.md)。如需有關[最佳實務](best-practices.md)、[程式設計語言](lambda-programming-languages.md)、[租戶隔離](tenant-isolation.md)和[開發和部署工具](tools-to-develop-deploy-manage.md)的資訊，請參閱下列相關主題。

您可以將 Lambda 用於：
+ **檔案處理**：在檔案上傳至 Amazon Simple Storage Service 時自動處理檔案。如需詳細資訊，請參閱[檔案處理範例](example-apps.md#examples-apps-file)。
+ **長時間執行的工作流程：**使用[耐用的 Lambda 函數](durable-functions.md)來建置狀態良好的多步驟工作流程，最多可執行一年。非常適合訂單處理、核准工作流程、human-in-the-loop，以及需要記住進度的複雜資料管道。
+ **資料庫操作與整合範例**：回應資料庫變更並自動執行資料工作流程。如需詳細資訊，請參閱[資料庫範例](example-apps.md#examples-apps-database)。
+ **排程與定期任務**：使用 EventBridge 定期執行自動化操作。如需詳細資訊，請參閱[排程任務範例](example-apps.md#examples-apps-scheduled)。
+ **串流處理**：處理即時資料串流，用於分析與監控用途。如需詳細資訊，請參閱 [Kinesis Data Streams](with-kinesis.md)。
+ **Web 應用程式**：建置可擴展的 Web 應用程式，能依據需求自動調整規模。
+ **行動後端**：建立安全的 API 後端，供行動裝置與 Web 應用程式使用。
+ **IoT 後端**：處理 Web、行裝置動、IoT 與第三方 API 請求。如需詳細資訊，請參閱 [IoT](services-iot.md)。

如需定價資訊，請參閱 [AWS Lambda 定價](https://aws.amazon.com/lambda/pricing/)。

## 函數和耐用函數
<a name="whatis-function-types"></a>

[Lambda 函數](#lambda-functions-chapter)最多執行 15 分鐘，非常適合處理 API 請求、處理檔案上傳或回應資料庫變更等事件驅動型任務。[耐用的 函數](durable-functions.md)會針對需要執行更長的時間並承受中斷的工作負載擴展此模型。他們可以執行長達一年，自動檢查進度，以便在失敗後可靠地恢復。當您需要多步驟工作流程、human-in-the-loop核准或長時間跨服務協調時，請使用耐用的函數。

## Lambda 的運作方式
<a name="how-lambda-works"></a>

使用 Lambda 時，您只需負責程式碼的相關操作。Lambda 在高可用性運算基礎結構上執行您的程式碼，並管理所有運算資源，包括伺服器與作業系統維護、容量佈建、自動擴展以及日誌記錄。

由於 Lambda 是無伺服器、事件驅動的運算服務，因此使用與傳統 Web 應用程式不同的程式設計方法。下列模型說明了 Lambda 的運作方式：

1. 您可以在用於建立 Lambda 應用程式的基本建置區塊 – [Lambda 函式](concepts-basics.md#gettingstarted-concepts-function)中編寫並組織程式碼。

1. 您可以透過 [Lambda 許可](lambda-permissions.md)控制安全性和存取權，使用[執行角色](lambda-intro-execution-role.md)來管理函數可以與哪些 AWS 服務互動，以及哪些資源政策可以與程式碼互動。

1. 事件來源 AWS 和服務[會觸發](concepts-event-driven-architectures.md) Lambda 函數，以 JSON 格式傳遞事件資料，您的函數會處理 （包括事件來源映射）。

1. Lambda 會透過語言專屬執行時期 (如 Node.js 與 Python) 在執行環境中[執行程式碼](concepts-how-lambda-runs-code.md)，這些執行環境已封裝您的執行時期、層級與延伸模組。

**提示**  
若要了解如何建置**無伺服器解決方案**，請參閱[無伺服器開發人員指南](https://docs.aws.amazon.com/serverless/latest/devguide/)。

## 主要功能
<a name="features"></a>

**設定、控制與部署安全應用程式：**
+ [環境變數](configuration-envvars.md)無需部署新的程式碼即可修改應用程式行為。
+ [版本](configuration-versions.md)可以安全地測試新功能，同時維持穩定的生產環境。
+ [層](chapter-layers.md)透過跨多個函式共用通用元件，最佳化程式碼的重複使用性與可維護性。
+ [程式碼簽署](configuration-codesigning.md)透過確保僅有經核准的程式碼能進入生產環境，強制執行安全合規要求。

**可靠擴展與執行：**
+ [並行與擴展控制](lambda-concurrency.md)可在流量激增期間精準管理應用程式的回應速度與資源使用率。
+ [SnapStart](snapstart.md) 可大幅縮短冷啟動時間。Lambda SnapStart 可提供低至一秒的啟動效能，通常不會變更函數程式碼。
+ [回應串流](configuration-response-streaming.md)透過逐步傳送大型承載資料來實現即時處理，從而最佳化函式效能。
+ [容器映像](images-create.md)運用容器工作流程，將具有複雜相依性的函式進行封裝。

**無縫連線與整合：**
+ [VPC 網路](configuration-vpc.md)可防護敏感資源與內部服務的安全。
+ [檔案系統](configuration-filesystem.md)整合能跨函式調用共用持續性資料，並管理具狀態作業。
+ [函數 URL](urls-configuration.md) 無需額外服務即可建立公開面向的 API 與端點。
+ [延伸模組](lambda-extensions.md)可透過監控、安全與營運工具增強函式效能。

## 相關資訊
<a name="what-is-lambda-moreinfo"></a>
+ 如需 Lambda 運作方式的詳細資訊，請參閱 [Lambda 的運作方式](concepts-basics.md)。
+ 若要開始使用 Lambda，請參閱[建立第一個 Lambda 函數](getting-started.md)。
+ 如需範例應用程式清單，請參閱[透過範例應用程式與模式快速入門](example-apps.md)。

## 中的安全性 AWS Lambda
<a name="lambda-security"></a>

的雲端安全 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感組織的需求而建置。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：
+ **雲端的安全性** – AWS 負責保護在 AWS Cloud AWS 服務 中執行的基礎設施。 AWS 也為您提供可安全使用的服務。在 [AWS 合規計畫](https://aws.amazon.com/compliance/programs/)中，第三方稽核員會定期測試並驗證我們的安全功效。若要了解適用的合規計劃 AWS Lambda，請參閱[AWS 服務 合規計劃範圍中的](https://aws.amazon.com/compliance/services-in-scope/) 。
+ **雲端內部的安全**：您的責任取決於所使用的 AWS 服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規。

本文件有助於您了解如何在使用 Lambda 時套用共同責任模型。下列主題將示範如何設定 Lambda 以達到您的安全和合規目標。您也會了解如何使用其他 AWS 服務 來協助您監控和保護 Lambda 資源。主題包括[合規驗證](security-compliance.md)、[資料保護](security-dataprotection.md)、[身分和存取管理](security-iam.md)、[界面 VPC 端點](security-public-endpoints.md)和[彈性](security-resilience.md)。

如需有關將安全性原則套用至 Lambda 應用程式的詳細資訊，請參閱無伺服器園地中的[安全性](https://serverlessland.com/content/service/lambda/guides/aws-lambda-operator-guide/security-ops)。

**Topics**
+ [中的資料保護 AWS Lambda](security-dataprotection.md)
+ [使用 Lambda 的服務連結角色](using-service-linked-roles.md)
+ [的 Identity and Access Management AWS Lambda](security-iam.md)
+ [建立 Lambda 函數和層的控管策略](governance-concepts.md)
+ [的合規驗證 AWS Lambda](security-compliance.md)
+ [中的彈性 AWS Lambda](security-resilience.md)
+ [中的基礎設施安全AWS Lambda](security-infrastructure.md)
+ [使用公有端點保護工作負載](security-public-endpoints.md)
+ [使用程式碼簽署來驗證 Lambda 的程式碼完整性](configuration-codesigning.md)