我正在寻找适用于NodeJS的AWS Lambda处理函数的完整文档,尤其是结果对象。 如何设置标题,饼干...我还有其他什么选项等等?AWS Lambda回调API在哪里记录?
只有回调原型似乎被记录下来,而不是它的参数。 http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html#nodejs-prog-model-handler-callback
AWS文档这么乱...
我正在寻找适用于NodeJS的AWS Lambda处理函数的完整文档,尤其是结果对象。 如何设置标题,饼干...我还有其他什么选项等等?AWS Lambda回调API在哪里记录?
只有回调原型似乎被记录下来,而不是它的参数。 http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html#nodejs-prog-model-handler-callback
AWS文档这么乱...
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方法页面上,选择集成响应。在默认的200 HTTP状态的标题 映射部分下,选择铅笔 图标编辑“Set-Cookie”标题。在映射值部分, 地说:
integration.response.body.Cookie
确保通过选择检查图标,保存标题!
APIG当前有一个限制,即每个标题只能在响应中存在一次。这意味着一次只能设置一个cookie。
你的问题似乎是关于API网关对Lambda回调参数的解释。从Lambda的角度来看,正确的答案是“与JSON.stringify兼容的任何对象”。 –
的确,我正在使用API网关。那么如何将lambda响应转换为纯HTTP响应呢? – vcarel
这就是@SteveE。下面试图说明。 API网关具有“集成响应”和“方法响应”的概念,使您能够将所有头发拉出来,直到它开始出现,然后开始弄清楚他们在想什么,然后才开始有意义。大部分行为并不是来自特定的回调结构,而是从您从回调对象内容中获取的元素构建的,以构建所需的响应。要么,要么我做错了。我同意,这部分文档很模糊。我会看看我能否确定一些事情。 –