This blog postはそれを説明する:
サンプルコードはこれです:
'use strict';
exports.handler = function(event, context) {
console.log("{'Cookie':event['Cookie']}");
var date = new Date();
// Get Unix milliseconds at current time plus 365 days
date.setTime(+ date + (365 \* 86400000)); //24 \* 60 \* 60 \* 100
// Generate a random cookie string
var cookieVal = Math.random().toString(36).substring(7);
var cookieString = "myCookie="+cookieVal+"; domain=my.domain;
expires="+date.toGMTString()+";";
context.done(null, {"Cookie": cookieString});
};
コールバックを使用して、その後、応答がする必要がある場合
callback(null, {
"statusCode": 200,
"headers": { "Set-Cookie": myCookie=cookieVal; domain=my.domain;
expires="+date.toGMTString()+"; },
"body": "..."
});
あなたもブログ記事ごとにCookieの応答を許可するようにAPIGを更新する必要が0
しかし:API Gatewayコンソールで
は、GETメソッドのページに移動し、メソッドのレスポンスを選択してください。デフォルトの200 HTTPステータスを展開し、[ヘッダを追加]を選択します。 "Set-Cookie"という新しいヘッダーを追加してください。
[GETメソッド]ページで、[統合レスポンス]を選択します。デフォルトの200 HTTPステータスのヘッダー マッピングセクションで、鉛筆 アイコンを選択して、「Set-Cookie」ヘッダーを編集します。マッピング値のセクションでは、 プット:
integration.response.body.Cookie
はチェックアイコンを選択して、ヘッダを保存することを確認します!
現在、APIGには、各ヘッダーが応答に1回しか存在できないという制限があります。つまり、一度に設定できるクッキーは1つだけです。
あなたの質問は、ラムダコールバック引数のAPIゲートウェイの解釈と思われる。ラムダの観点から、正解は「JSON.stringifyと互換性のあるオブジェクト」です。 –
実際、私はAPI Gatewayを使用しています。だから、ラムダのレスポンスはプレーンなHTTPレスポンスに変換されますか? – vcarel
これが@SteveEです。以下に説明しようとしていた。 API Gatewayには、「インテグレーションレスポンス」と「メソッドレスポンス」のコンセプトがあります。これにより、あなたの頭が覚醒して何が考えられているのかがわかるようになり、それが意味をなさないようになります。ほとんどの振る舞いは、特定のコールバック構造ではなく、コールバックオブジェクトの内容から抜き出した要素から構成され、目的の応答を構築します。どちらか、それとも間違っているのか。私は同意する、この部分のドキュメントは暗いです。私は何かをピンで止めることができるかどうかを見ます。 –