1

我剛開始學習aws lambda &網關,現在我正在嘗試使用aws Lambda製作一個簡單的API。如何通過aws網關將數據發送到aws lambda?

這是我的lambda函數。

'use strict' 
console.log('Loading event'); 

exports.handler = function(event, context, callback) { 
var name = (event.name === undefined? 'No-Name' : event.name); 
callback(null, {"Your-name" : name}); // SUCCESS with message 
}; 

這是我的映射模板。(內容類型:應用程序/ JSON)

{"name" : "$input.params('name')"} 

我要改變名稱的價值,所以我想,

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'my api url...'); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState === 4) { 
     console.log(xhr.response); 
    } 
}; 
xhr.setRequestHeader("Content-Type", "application/json"); 
xhr.responseType = 'json'; 
var name = "JACK"; 
xhr.send(name); 

它不起作用。 我想要一些像{「Your-name」:「JACK」}但它只返回{「Your-name」:「No-Name」}。 我該如何解決這個問題?

+0

這是一個愚蠢的錯誤。 我不得不使用'POST',而不是'GET'。 –

回答

1

你嘗試:

var json = JSON.stringify({ name: "JACK" }); 
 
xhr.send(json);

+0

是的,我試過,但它不起作用。 –

+0

lambda函數的輸入格式必須是JSON,這就是爲什麼它不起作用。我無法用XMLhttprequest發送JSON對象,所以我試圖在集成請求中使用映射模板..但對我來說沒有任何東西容易haha –

+0

將console.log(JSON.stringify(event,null,2))放入您的處理程序,再次發出請求並查看事件對象中的內容。 –

相關問題