5

API Gateway を介して Lambda から gzip された応答を取得できないようです。Lambda で応答を gzip し、API Gateway で「Content-Encoding」ヘッダーを設定しています。

どの部分が問題なのかわかりません。

Lambda から API Gateway への最終的な戻り値は次のとおりです。

zlib.gzip(myJsonString, function (err, buffer) {
    if ( err ) { return handleError(err, context) }

    return context.succeed(buffer.toString('binary'));
});

バッファを渡したり、base64でエンコードしたりしてみました。

Chrome から GET リクエストを作成する: ゲートウェイから Content-Encoding ヘッダーを削除すると、バイナリ/base64/バッファ配列がブラウザで文字列応答として取得されます。

ヘッダーを設定すると、GET リクエストは応答なしで完全に失敗しますが、AWS コンソールでのテストでは、引用符で囲まれたペイロードが返されます。

ここで何が起こっているのかはわかりませんが、Amazon が実際に人々にこれを使ってもらいたいのであれば、応答を圧縮できるようにする必要があります。API Gateway のチェックボックスにするだけで、Lambda から JSON 文字列を返すだけで、自動的に圧縮できるようです。

4

1 に答える 1

2

2016 年 11 月 17 日現在 -バイナリ データが API Gateway でサポートされるようになりました

あなたがそれを理解したら教えてください!

于 2016-12-13T11:27:21.460 に答える