本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 API Gateway 中設定 HTTP 代理整合與承載回應串流
當您設定回應承載串流時,您可以在 方法的整合請求中指定回應傳輸模式。您可以在整合請求中設定這些設定,以控制 API Gateway 在整合回應之前和期間的行為。使用回應串流時,您可以設定整合逾時最多 15 分鐘。
當您搭配 HTTP_PROXY整合使用承載回應串流時,API Gateway 不會傳送 HTTP 回應狀態碼或任何 HTTP 回應標頭,直到它完全收到所有標頭為止。
建立 HTTP 代理與承載回應串流的整合
下列程序說明如何匯入新的 API,並將 responseTransferMode設定為 STREAM。如果您有現有的整合 API 並想要修改 responseTransferMode,請參閱 更新 HTTP 代理整合的回應傳輸模式。
- AWS 管理主控台
-
建立與承載回應串流的 HTTP 代理整合
-
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway。
選擇 REST API。
選擇建立資源。
針對資源名稱,輸入 streaming。
選擇建立資源。
選取 /streaming 資源後,選擇建立方法。
針對方法類型,選擇任何。
對於整合類型,選擇 HTTP。
選擇 HTTP 代理整合。
針對回應傳輸模式,選擇串流。
針對 HTTP 方法,選擇方法。
-
針對端點 URL,輸入整合端點。請確定您選擇的端點會產生要串流回給您的大型承載。
選擇建立方法。
建立方法之後,請部署您的 API。
部署 API
選擇部署 API。
針對階段,選取新階段。
針對階段名稱,輸入 prod。
在描述,請輸入描述。
選擇部署。
- AWS CLI
-
使用承載回應串流建立新的 API
-
複製下列 Open API 檔案,然後將其儲存為 ResponseStreamDemoSwagger.yaml。在此檔案中, responseTransferMode 設定為 STREAM。整合端點設定為 https://example.com,但建議您將其修改為可產生大型承載的端點,以串流回給您。
openapi: "3.0.1"
info:
title: "ResponseStreamingDemo"
version: "2025-04-28T17:28:25Z"
servers:
- url: "{basePath}"
variables:
basePath:
default: "prod"
paths:
/streaming:
get:
x-amazon-apigateway-integration:
httpMethod: "GET"
uri: "https://example.com"
type: "http_proxy"
timeoutInMillis: 900000
responseTransferMode: "STREAM"
使用以下import-rest-api命令匯入您的 OpenAPI 定義:
aws apigateway import-rest-api \
--body 'fileb://~/ResponseStreamDemoSwagger.yaml' \
--parameters endpointConfigurationTypes=REGIONAL \
--region us-west-1
使用下列create-deployment命令將您的新 API 部署到階段:
aws apigateway create-deployment \
--rest-api-id a1b2c3 \
--stage-name prod \
--region us-west-1
更新 HTTP 代理整合的回應傳輸模式
下列程序說明如何更新 HTTP 代理整合的回應傳輸模式。
- AWS 管理主控台
-
更新方法後,請部署您的 API。
部署 API
選擇部署 API。
針對階段,選取新階段。
針對階段名稱,輸入 prod。
在描述,請輸入描述。
選擇部署。
- AWS CLI
-
下列update-integration命令會將 整合的傳輸模式從 更新BUFFERED為 STREAM。對於任何現有的 APIs,所有整合的回應傳輸模式都會設定為 BUFFERED。
aws apigateway update-integration \
--rest-api-id a1b2c3 \
--resource-id aaa111 \
--http-method GET \
--patch-operations "op='replace',path='/responseTransferMode',value=STREAM" \
--region us-west-1
您需要重新部署 API,變更才會生效。如果您自訂整合逾時,則會移除此逾時值,因為 API Gateway 會串流您的回應長達 5 分鐘。
下列update-integration命令會將 整合的傳輸模式從 更新STREAM為 BUFFERED:
aws apigateway update-integration \
--rest-api-id a1b2c3 \
--resource-id aaa111 \
--http-method GET \
--patch-operations "op='replace',path='/responseTransferMode',value=BUFFERED" \
--region us-west-1
您需要重新部署 API,變更才會生效。