私は、AWS API Gateway(APIG)とLambda機能を備えたサーバレスWebサイトを構築しています。私はプロキシーインテグレーションを使用する必要があります。なぜなら、ラムダ関数はHTTP要求ヘッダーを受け取る必要があるからです。同時に、いくつかのバイナリデータを提供する必要があります。私の場合、favicon.icoファイル。他の人は、動的に作成されたPDFまたはExcelファイルを提供したいかもしれません。 APIGはこの目的のためにバイナリをサポートしています。 base64でデータをエンコードし、そのMIMEコンテンツタイプがクライアントに提供される前にデコードできるように設定します。ただし、これはプロキシ統合では機能しません。プロキシの統合は、統合応答の部分をスキップするだけです。AWS API Gatewayからプロキシ統合でバイナリデータを提供するにはどうすればよいですか?
私はfavicon.icoのリクエストをS3エンドポイントにリダイレクトしようとしましたが、ブラウザは奇妙な動作を示していました。 icoファイルは異なるドメインからリダイレクトされたドメインであり、同じドメインではないためです。
base64でエンコードし、クライアントブラウザでデコードすることはオプションではありません。これは標準ではないため、すべてのブラウザで機能しない可能性があります。
AWSがこれに新しい機能を追加するまで、私は何もできないと思います。誰もがこの問題に目をつけていますか?任意のアイデアや提案?
私のエンドポイントの1つでPDFを返そうとしていて、それをbase64としてエンコードし、 "isBase64Encoded"をtrueに設定しました。しかし、私が戻ってくるPDFは、正しくデコードされないようです。ファイルをテキストエディタで開き、手動でデコードして保存すると、PDFを表示できます。それがなぜ起こっているのか? – JPL
JPLでは、バイナリサポートのMIME設定を確認してください。 – gini09
私の最後のコメント以来、私はすべての型のバイナリサポートを追加しました*/*、これは動作しますが、JSONのような非バイナリ型を混乱させます。 application/pdfやapplication/*を入力しても、API Gatewayはそれを認識せず、正しく処理しません。フォーマットが間違っているかどうか、または他の設定があるかどうかはわかりません。 – JPL