我正在尋找適用於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網關具有「集成響應」和「方法響應」的概念,使您能夠將所有頭髮拉出來,直到它開始出現,然後開始弄清楚他們在想什麼,然後纔開始有意義。大部分行爲並不是來自特定的回調結構,而是從您從回調對象內容中獲取的元素構建的,以構建所需的響應。要麼,要麼我做錯了。我同意,這部分文檔很模糊。我會看看我能否確定一些事情。 –