在 API Gateway 中設定 HTTP 代理整合與承載回應串流 - Amazon API Gateway

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

在 API Gateway 中設定 HTTP 代理整合與承載回應串流

當您設定回應承載串流時,您可以在 方法的整合請求中指定回應傳輸模式。您可以在整合請求中設定這些設定,以控制 API Gateway 在整合回應之前和期間的行為。使用回應串流時,您可以設定整合逾時最多 15 分鐘。

當您搭配 HTTP_PROXY整合使用承載回應串流時,API Gateway 不會傳送 HTTP 回應狀態碼或任何 HTTP 回應標頭,直到它完全收到所有標頭為止。

建立 HTTP 代理與承載回應串流的整合

下列程序說明如何匯入新的 API,並將 responseTransferMode設定為 STREAM。如果您有現有的整合 API 並想要修改 responseTransferMode,請參閱 更新 HTTP 代理整合的回應傳輸模式

AWS 管理主控台
建立與承載回應串流的 HTTP 代理整合
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 選擇建立資源

  4. 針對資源名稱,輸入 streaming

  5. 選擇建立資源

  6. 選取 /streaming 資源後,選擇建立方法

  7. 針對方法類型,選擇任何

  8. 對於整合類型,選擇 HTTP

  9. 選擇 HTTP 代理整合

  10. 針對回應傳輸模式,選擇串流

  11. 針對 HTTP 方法,選擇方法。

  12. 針對端點 URL,輸入整合端點。請確定您選擇的端點會產生要串流回給您的大型承載。

  13. 選擇建立方法

建立方法之後,請部署您的 API。

部署 API
  1. 選擇部署 API

  2. 針對階段,選取新階段

  3. 針對階段名稱,輸入 prod

  4. 描述,請輸入描述。

  5. 選擇部署

AWS CLI
使用承載回應串流建立新的 API
  1. 複製下列 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"
  2. 使用以下import-rest-api命令匯入您的 OpenAPI 定義:

    aws apigateway import-rest-api \ --body 'fileb://~/ResponseStreamDemoSwagger.yaml' \ --parameters endpointConfigurationTypes=REGIONAL \ --region us-west-1
  3. 使用下列create-deployment命令將您的新 API 部署到階段:

    aws apigateway create-deployment \ --rest-api-id a1b2c3 \ --stage-name prod \ --region us-west-1

更新 HTTP 代理整合的回應傳輸模式

下列程序說明如何更新 HTTP 代理整合的回應傳輸模式。

AWS 管理主控台
更新 HTTP 代理整合的回應傳輸模式
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇 REST API。

  3. 選擇一個方法。

  4. 整合請求索引標籤上,於整合請求設定下,選擇編輯

  5. 針對回應傳輸模式,選擇串流

  6. 選擇儲存

更新方法後,請部署您的 API。

部署 API
  1. 選擇部署 API

  2. 針對階段,選取新階段

  3. 針對階段名稱,輸入 prod

  4. 描述,請輸入描述。

  5. 選擇部署

AWS CLI

下列update-integration命令會將 整合的傳輸模式從 更新BUFFEREDSTREAM。對於任何現有的 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命令會將 整合的傳輸模式從 更新STREAMBUFFERED

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,變更才會生效。