API Gateway でペイロードレスポンスストリーミングと HTTP プロキシ統合を設定する
レスポンスペイロードストリーミングを設定するときは、メソッドの統合リクエストでレスポンス転送モードを指定します。これらの設定は、統合リクエストで設定して、統合レスポンスの前と最中に API Gateway がどのように動作するかを制御します。レスポンスストリーミングを使用すると、統合タイムアウトを最大 15 分まで設定できます。
HTTP_PROXY 統合でペイロードレスポンスストリーミングを使用する場合、API Gateway はすべてのヘッダーを完全に受信するまで、HTTP レスポンスステータスコードまたは HTTP レスポンスヘッダーを送信しません。
ペイロードレスポンスストリーミングとの HTTP プロキシ統合を作成する
次の手順では、responseTransferMode を STREAM に設定して新しい API をインポートする方法を示します。既存の統合 API があり、responseTransferMode を変更する場合は、「HTTP プロキシ統合のレスポンス転送モードを更新する」を参照してください。
- AWS マネジメントコンソール
-
ペイロードレスポンスストリーミングとの HTTP プロキシ統合を作成するには
-
https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。
REST API を選択します。
[リソースの作成] を選択します。
[リソース名] に streaming と入力します。
[リソースの作成] を選択します。
[/streaming] リソースを選択した状態で、[メソッドを作成] を選択します。
[メソッドタイプ] で、[任意] を選択します。
[統合タイプ] で、 [HTTP] を選択します。
[HTTP プロキシ統合] を選択します。
[レスポンス転送モード] で、[ストリーム] を選択します。
[HTTP メソッド] の場合は、メソッドを選択します。
-
[エンドポイント URL] には、統合エンドポイントを入力します。ストリーミングで返される大きなペイロードを生成するエンドポイントを必ず選択してください。
[メソッドの作成] を選択します。
メソッドを作成したら、API をデプロイします。
API をデプロイするには
[API のデプロイ] を選択します。
[ステージ] で [新規ステージ] を選択します。
[Stage name (ステージ名)] に 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 のデプロイ] を選択します。
[ステージ] で [新規ステージ] を選択します。
[Stage name (ステージ名)] に prod と入力します。
(オプション) [説明] に説明を入力します。
[デプロイ] をクリックします。
- AWS CLI
-
次の update-integration コマンドは、統合の転送モードを BUFFERED から STREAM に更新します。既存の API の場合、すべての統合のレスポンス転送モードは 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 を再デプロイする必要があります。