

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

# AWS Lambda Web 函數
<a name="web-functions"></a>

透過 AWS Lambda Web Functions，您可以將 Web 應用程式和 API 後端作為無伺服器 HTTP 伺服器執行。您的程式碼會接聽網路連接埠，並直接處理請求。您可以使用熟悉的 Node.js Web 架構Express，例如 Hono、 或 React Router ，無需 Lambda 特定的轉接器或包裝函式。您可以像任何其他 Node.js Web 應用程式一樣，在本機開發和執行伺服器。

您可以將程式碼部署為 .zip 檔案。Lambda 會建立 HTTPS 端點、管理執行環境，並使用流量擴展您的應用程式，包括閒置時的零。若要降低全域分散式使用者的延遲，您可以在單一端點 AWS 區域 後方跨多個 進行部署。Lambda 使用以延遲為基礎的路由，將每個請求傳送至其中一個區域。您支付請求、作用中 CPU 時間、每個執行環境生命週期內耗用的記憶體，以及資料傳輸的費用。

**Topics**
+ [何時使用 Web 函數](#web-functions-overview-use-cases)
+ [Web 函數的運作方式](#web-functions-overview-how-it-works)
+ [主要優點](#web-functions-overview-benefits)
+ [核心概念](web-functions-how-it-works.md)
+ [建立 Lambda Web 函數](web-functions-create.md)
+ [部署 Web 函數](web-functions-deploying.md)
+ [HTTP 請求和回應](web-functions-http.md)
+ [設定 AWS Lambda Web 函數的聯網](web-functions-networking.md)
+ [Lambda Web 函數的擴展行為](web-functions-scaling.md)
+ [執行環境生命週期](web-functions-env-lifecycle.md)
+ [Lambda Web 函數執行時間](web-functions-runtimes.md)
+ [設定 Lambda Web 函數](web-functions-configuration.md)
+ [Lambda Web 函數許可](web-functions-permissions.md)
+ [Lambda Web 函數端點存取控制](web-functions-endpoint-access-control.md)
+ [Web 函數的靜態加密](web-functions-encryption.md)
+ [監控 Lambda Web 函數](web-functions-monitoring.md)
+ [Web 函數範例應用程式](web-functions-samples.md)
+ [Lambda Web Functions 的最佳實務](web-functions-best-practices.md)
+ [測試 Lambda Web 函數](web-functions-testing.md)
+ [故障診斷 Lambda Web 函數](web-functions-troubleshooting.md)

## 何時使用 Web 函數
<a name="web-functions-overview-use-cases"></a>

將 Web 函數用於直接接收和回應 HTTP 流量的工作負載。常用案例包括：
+ **Web 應用程式** – 從單一部署部署提供 HTML、資產和 API 路由的完整堆疊或前端應用程式。
+ **REST 和 GraphQL APIs** – 建置可處理高請求磁碟區的 API 後端。
+ **Microservices** – 執行隨流量獨立擴展的 HTTP 服務，包括閒置時歸零。
+ **伺服器端轉譯 (SSR)** – 提供請求時在伺服器上轉譯的頁面，而不是預先建置的頁面。Web 函數會直接執行架構的生產伺服器。它在沒有個別託管層的情況下處理 SSR 請求、串流和 API 路由。它也會隨流量而擴展。這適用於在每個請求上呈現個人化或經常變更內容的應用程式。
+ **串流回應** – 產生用戶端時將輸出串流至用戶端，例如來自大型語言模型的回應。

對於事件驅動處理，例如處理佇列訊息或檔案上傳，請改用 [Lambda 事件函數](lambda-functions-chapter.md#lambda-functions-use-cases)。

**注意**  
AWS Lambda Web 函數目前僅支援Node.js執行時間。如果您使用 Java、Python、 .NET或其他語言，請參閱 [建立第一個 Lambda 函數](getting-started.md) 以取得 AWS Lambda 事件函數，或[AWS Lambda MicroVMs](lambda-microvms-guide.md)參閱 以取得 Lambda MicroVMs

## Web 函數的運作方式
<a name="web-functions-overview-how-it-works"></a>

Web 函數包含修訂和端點。修訂是您程式碼和組態的不可變快照。端點會將 HTTP 請求路由至一或兩個修訂。Lambda 會在執行環境中執行您的伺服器，每個環境都會處理多個並行請求。Lambda 會使用流量來擴展這些執行環境。如需詳細資訊，請參閱[核心概念](web-functions-how-it-works.md)。

## 主要優點
<a name="web-functions-overview-benefits"></a>

Web 函數為 Web 應用程式和 API 後端提供下列優點：
+ **標準 Web 開發體驗** – 部署在連接埠上接聽的標準Node.js應用程式。您可以使用熟悉的 Web 架構和正常的應用程式結構。
+ **自適應擴展** – 每個執行環境提供多個並行請求，例如標準 Web 伺服器。因此，較少的執行環境會處理更多流量。現有的執行環境可以吸收少量流量，因此較少的請求等待新的執行環境啟動。
+ 以**用量為基礎的帳單** – 您支付請求、應用程式和執行期主動耗用的 CPU 時間、每個執行環境生命週期的記憶體，以及資料傳輸的費用。等待資料庫查詢或外部 API 呼叫的請求在等待時會耗用很少的 CPU。不過，在執行環境存在時，記憶體會持續累積，包括請求之間的閒置時間。
+ **回應串流** – 在您的應用程式產生用戶端時串流回應，無需額外的組態。
+ **擴展到零** – 當沒有流量時，Lambda 會移除閒置執行環境，並在請求到達時建立新的執行環境。請求可能會在執行環境初始化時等待。如需擴展和調節運作方式的詳細資訊，請參閱 [Lambda Web 函數的擴展行為](web-functions-scaling.md)。
+ **內建 HTTPS 端點** – 每個端點都提供具有 TLS 的 HTTPS 網域。您可以為每個端點選擇 IAM 身分驗證或應用程式受管身分驗證。如需詳細資訊，請參閱[Lambda Web 函數端點存取控制](web-functions-endpoint-access-control.md)。若要使用自訂網域或 AWS WAF 保護，請將 Amazon CloudFront 分佈放在端點前面。
+ **端點層級流量控制** – 為每個 HTTPS 端點設定請求速率限制 （每秒請求數），Lambda 會在每個區域中強制執行此限制，以及在每個區域中強制執行的最大執行環境數量 (`maxEnvironments`)。這些都可讓您限制端點接受的流量。它們還可讓您限制端點將多少負載傳遞到下游相依性，例如資料庫和外部 APIs。如需詳細資訊，請參閱[Lambda Web 函數的擴展行為](web-functions-scaling.md)。