如何通过aws网关将数据发送到aws lambda?
我刚开始学习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”}。 我该如何解决这个问题?
你尝试:
var json = JSON.stringify({ name: "JACK" });
xhr.send(json);
?
是的,我试过,但它不起作用。 –
lambda函数的输入格式必须是JSON,这就是为什么它不起作用。我无法用XMLhttprequest发送JSON对象,所以我试图在集成请求中使用映射模板..但对我来说没有任何东西容易haha –
将console.log(JSON.stringify(event,null,2))放入您的处理程序,再次发出请求并查看事件对象中的内容。 –
这是一个愚蠢的错误。 我不得不使用'POST',而不是'GET'。 –