2017-08-02 10 views
0

NodeJSのAWS Lambdaのハンドラ関数、特に結果オブジェクトの完全なドキュメントを探しています。 ヘッダーやCookieを設定するにはどうしたらいいですか?AWS LambdaコールバックAPIはどこに文書化されていますか?

コールバックプロトタイプのみが文書化されているように見えますが、その引数はありません。 http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html#nodejs-prog-model-handler-callback

AWSドキュメントなど混乱です...

+1

あなたの質問は、ラムダコールバック引数のAPIゲートウェイの解釈と思われる。ラムダの観点から、正解は「JSON.stringifyと互換性のあるオブジェクト」です。 –

+0

実際、私はAPI Gatewayを使用しています。だから、ラムダのレスポンスはプレーンなHTTPレスポンスに変換されますか? – vcarel

+2

これが@SteveEです。以下に説明しようとしていた。 API Gatewayには、「インテグレーションレスポンス」と「メソッドレスポンス」のコンセプトがあります。これにより、あなたの頭が覚醒して何が考えられているのかがわかるようになり、それが意味をなさないようになります。ほとんどの振る舞いは、特定のコールバック構造ではなく、コールバックオブジェクトの内容から抜き出した要素から構成され、目的の応答を構築します。どちらか、それとも間違っているのか。私は同意する、この部分のドキュメントは暗いです。私は何かをピンで止めることができるかどうかを見ます。 –

答えて

0

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つだけです。

+0

答えはありがたいですが、これはトピックです。実際には、 "Set-Cookie"ヘッダーを返すだけかもしれませんが、もっと簡単です(https://stackoverflow.com/questions/45111150/setting-cookie-in-http-response-header-from-aws-ラムダ - ノード-js)。 – vcarel

+0

コールバックAPIの包括的なドキュメントが必要です(または、これはAPIゲートウェイで文書化されていますが、どちらにもできませんでした)。私はチュートリアル、ガイド、ブログ投稿には興味がありません。 – vcarel

関連する問題