web-dev-qa-db-ja.com

AWSラムダからのHTTP応答ヘッダーの設定

API Gateway/Lamdbaセットアップはhttp応答ヘッダーを返します:Lamdbaはコールバック関数を使用してjsonの一部として値を返し、Integration Responseはそれをヘッダーにマップします(integration.response.bodyを使用)

このソリューションでは、値は本文とヘッダーの両方で送り返されます。

応答本文の値を複製せずにLambda応答からヘッダーをマッピングするにはどうすればよいですか?

18
Saar

Lambdaプロキシ統合が有効になっている場合、応答ヘッダーをLambda出力の一部として設定でき、API GatewayはHTTP応答の一部としてそれらを返しますクライアント。

Node.jsの例:

callback(null, {
    "isBase64Encoded": false, // Set to `true` for binary support.
    "statusCode": 200,
    "headers": {
        "header1Name": "header1Value",
        "header2Name": "header2Value",
    },
    "body": "...",
});

ここで、headersは、nullまたは追加の応答ヘッダーを返さない場合は指定しない場合があります。

プロキシ統合用のLambda関数の出力形式 を参照してください。

33
Khalid T.

DO N'TLambaプロキシ統合が有効になっている場合、Amazon APIゲートウェイコンソールで応答ヘッダーを追加(およびマッピング)できます。

リソースに移動->メソッドの実行->メソッドの応答-> HTTPステータス200の 'Access-Control-Allow-Origin'(または何でも)ヘッダーを追加します。その後、メソッドの実行に戻ります->メソッドの統合-> HTTPステータス200-> 「Access-Control-Allow-Origin」のヘッダーマッピングを「*」(またはその他)に設定します。

このエラーを解決しました...:「要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません」

3
B0773N