Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

レスポンスストリーミング対応 Lambda 関数の記述

フォーカスモード
レスポンスストリーミング対応 Lambda 関数の記述 - AWS Lambda

レスポンスストリーミング関数のハンドラー記述は、一般的なハンドラーパターンとは異なります。ストリーミング関数の作成時は、必ず次の事項を確認してください。

  • ネイティブ Node.js ランタイムの awslambda.streamifyResponse() デコレーターで関数をラップします。

  • 確実にすべてのデータ処理を完了させるため、ストリームを正常に終了させます。

ストリームレスポンスにハンドラー関数を設定する

Lambda が関数のレスポンスをストリーミングする必要があることをランタイムに示すには、関数を streamifyResponse() デコレーターでラップする必要があります。これにより、レスポンスをストリーミングするために適切なロジックパスを使用するようランタイムに指示し、関数がレスポンスをストリーミングできるようにします。

streamifyResponse() デコレーターは、次のパラメータを受けつける関数を受けつけます。

  • event — HTTP メソッド、クエリパラメータ、リクエスト本文など、関数 URL の呼び出しイベントに関する情報を提供します。

  • responseStream — 書き込み可能なストリームを提供します。

  • context – 呼び出し、関数、実行環境に関する情報を含むメソッドおよびプロパティを提供します。

responseStream オブジェクトは「Node.js writableStream」です。他のこのようなストリームと同様に、pipeline() メソッドを使用する必要があります。

例 レスポンスストリーミング対応ハンドラー
const pipeline = require("util").promisify(require("stream").pipeline); const { Readable } = require('stream'); exports.echo = awslambda.streamifyResponse(async (event, responseStream, _context) => { // As an example, convert event to a readable stream. const requestStream = Readable.from(Buffer.from(JSON.stringify(event))); await pipeline(requestStream, responseStream); });

responseStream にはストリームに書き込む write() メソッドが用意されていますが、「pipeline()」を可能な限り使用することをお勧めします。pipeline() を使用すると、書き込み可能なストリームが読み取り速度の速いストリームによって抑制されることがなくなります。

ストリームを終了する

ハンドラーが戻る前にストリームが適切に終了することを確認してください。pipeline() メソッドはこれを自動的に処理します。

他のユースケースでは、responseStream.end() メソッドを呼び出してストリームを適切に終了させます。このメソッドは、ストリームにこれ以上データを書き込む必要がないことを通知します。pipeline() または pipe() でストリームに書き込む場合、このメソッドは不要です。

例 pipeline() でストリームを終了する例
const pipeline = require("util").promisify(require("stream").pipeline); exports.handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { await pipeline(requestStream, responseStream); });
例 pipeline() なしでストリームを終了する例
exports.handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { responseStream.write("Hello "); responseStream.write("world "); responseStream.write("from "); responseStream.write("Lambda!"); responseStream.end(); });
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.