Posted at

Lambdaで複数値を持ったヘッダーを返す方法


はじめに

Lambda+S3でWebアプリを作った際にLambdaからSet-Cookieで複数のCookieを同時に設定したかったのですが、ちょっとハマったのでメモがてらここに残しておきます。


環境


  • Node.js 10.X

  • Lambdaプロキシ統合利用

  • メソッドはGET


コード

multiValueHeadersで設定できます。valueを配列にすれば良いだけみたいですね。ちなみに僕はJSONをJSON.stringifyして1時間くらいハマりました。気をつけましょう。

exports.handler = async (event, context, callback) => {

const response = new Response();
response.statusCode = 200;
response.multiValueHeaders = { "Set-Cookie": [`KEY1=VALUE1`, `KEY2=VALUE2`] };
response.body = JSON.stringify({ result: "succeed" });
callback(null, response);
};

class Response {
constructor() {
this.statusCode = "";
this.headers = {};
this.multiValueHeaders = {};
this.body = {};
}
}