我正在寻找有关NodeJS的AWS Lambda处理函数的完整文档,尤其是结果对象。 如何设置标题,Cookie ...我还有其他选项等等?
似乎只记录了回调原型,而不是它的参数。 http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html#nodejs-prog-model-handler-callback
AWS文档太乱了......
答案 0 :(得分: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": "..."
});
但您还需要根据博客文章更新APIG以允许cookie响应:
在API网关控制台中,转到GET方法页面并选择方法响应。展开默认的200 HTTP状态,然后选择“添加标题”。添加一个名为“Set-Cookie”的新标题。
在GET Method页面上,选择Integration Response。在标题下 映射部分默认为200 HTTP状态,选择铅笔 用于编辑“Set-Cookie”标题的图标。在映射值部分中, 放:
integration.response.body.Cookie
请务必选择检查图标来保存标题!
APIG目前有一个限制,即每个标头只能在响应中存在一次。这意味着一次只能设置一个cookie。