

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

# Lambda 函數的回應串流
<a name="configuration-response-streaming"></a>

Lambda 函數可以透過 [Lambda 函數 URLs](urls-configuration.md) 或使用 [InvokeWithResponseStream](https://docs.aws.amazon.com/lambda/latest/api/API_InvokeWithResponseStream.html) API （透過 AWS SDK 或直接 API 呼叫），將回應承載原生串流回用戶端。您的 Lambda 函數也可以透過 [Amazon API Gateway 代理整合](https://docs.aws.amazon.com/apigateway/latest/developerguide/response-transfer-mode-lambda.html)串流回應承載，該整合使用 [InvokeWithResponseStream](https://docs.aws.amazon.com/lambda/latest/api/API_InvokeWithResponseStream.html) API 來叫用您的函數。透過提高第一個位元組時間 (TTFB) 效能，回應串流有益於延遲敏感應用程式。這是因為您可以在部分回應可用時將其傳回給用戶端。此外，相較於緩衝回應的 6 MB 上限，回應串流函式最多可傳回 200 MB 的承載。串流回應也意味著您的函數不需要將整個回應放在記憶體裡。若是非常大的回應，這有助於減少您需要為函數設定的記憶體容量。

**注意**  
Lambda 回應串流尚未全面提供 AWS 區域。請參閱依[AWS 區域劃分的 Builder Center 功能](https://builder.aws.com/build/capabilities)，以取得依區域劃分的功能可用性。

Lambda 串流回應的速度取決於回應的大小。函式回應的串流速度在前 6 MB 不受限制。若回應大於 6 MB，則其餘的回應會受到頻寬上限的限制。如需串流頻寬的詳細資訊，請參閱[回應串流的頻寬限制](#config-rs-bandwidth-cap)。

串流回應會產生成本，而且當叫用用戶端連線中斷時，不會中斷或停止串流回應。客戶需支付完整函數持續時間的費用，因此客戶在設定長函數逾時時應小心。

Lambda 支援 Node.js 受管執行期的回應串流。對於其他語言，包括 Python，您可以使用[自訂執行期搭配自訂執行期 API 整合](runtimes-custom.md#runtimes-custom-response-streaming)來串流回應或使用 [Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter)。

**注意**  
透過 Lambda 主控台測試函數時，您一律會看到緩衝的回應。

**Topics**
+ [回應串流的頻寬限制](#config-rs-bandwidth-cap)
+ [VPC 與回應串流的相容性](#config-rs-vpc-compatibility)
+ [撰寫啟用回應串流的 Lambda 函數](config-rs-write-functions.md)
+ [使用 Lambda 函數 URL 調用啟用回應串流的函數](config-rs-invoke-furls.md)
+ [教學課程：建立具有函數 URL 的回應串流 Lambda 函數](response-streaming-tutorial.md)

## 回應串流的頻寬限制
<a name="config-rs-bandwidth-cap"></a>

函式回應承載的前 6 MB 不受頻寬限制。在最初的高頻寬流量後，Lambda 會以最高 2 MBps 的速率串流您的回應。如果函式回應一直都沒超過 6 MB，則永遠不會適用此頻寬限制。

**注意**  
頻寬限制僅適用於函數的回應有效負載，不適用於函數的網路存取。

無頻寬上限的速率取決於諸多因素 (包括函數的處理速度)。一般來說，您可以預期函式回應前 6 MB 的速率會高於 2 Mbps。如果您的函數正在將回應串流到 以外的目的地 AWS，則串流速率也取決於外部網際網路連線的速度。

## VPC 與回應串流的相容性
<a name="config-rs-vpc-compatibility"></a>

在 VPC 環境中使用 Lambda 函式時，回應串流需注意下列重要考量事項：
+ Lambda 函式 URL 不支援 VPC 環境中的回應串流。
+ 您可以使用 `InvokeWithResponseStream` API 透過 AWS SDK 叫用 Lambda 函數，在 VPC 內使用回應串流。這需要為 Lambda 設定適當的 VPC 端點。
+ 對於 VPC 環境，您需要為 Lambda 建立介面 VPC 端點，用以啟用 VPC 環境中資源與 Lambda 服務之間的通訊。

VPC 環境中回應串流的典型架構可能包括：

```
Client in VPC -> Interface VPC endpoint for Lambda -> Lambda function -> Response streaming back through the same path
```