1

我的lambda函数在node.js中:不能调用lambda函数AWS

console.log('Loading function'); 

    exports.handler = function(event, context) { 

    console.log('value1 =', event.key1); 
    context.succeed("Hello " + event.key1); 
    }; 

我需要在客户端(我的笔记本电脑)发送包含该值的“世界”这个lambda函数的对象。该函数添加“Hello”并返回“Hello world”。 我用CMD与卷曲用下面的语句:

curl -X POST -d '{"key1":"world"}' https://blablablabla.execute-api.us-west-2.amazonaws.com/prod/helloworld2 

但我只拿回{“消息”:“内部服务器错误”}

任何想法?有没有其他的方式来发送“世界”的价值。也许在HTML文件中的JavaScript或Eclipse中的简单Java应用程序? lambda函数本身很好。我用测试事件成功测试了它。

+0

检查CloudWatch的日志本函数来查看实际的内部服务器错误是什么。你的API网关映射模板又是什么? –

+0

您也可以尝试在API网关控制台中测试您的API,这可能会给您一些额外的信息。 –

回答

0

你的功能似乎很好。但是你错过了cURL命令中的Content-Type标题。做到这一点,如下所示:

curl -H "Content-Type: application/json" -X POST -d "{\"key1\": \"World\"}" https://blablablabla.execute-api.us-west-2.amazonaws.com/prod/helloworld2 

您可以双击this AWS documentation.

更新检查这一要求:使用此功能尝试(我只加了回调参数)

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

exports.handler = function(event, context, callback) { 
    console.log('value1 =', event.key1); 
    callback(null, {"Hello": event.key1}); 
}; 
+0

谢谢。不幸的是没有工作。 – Timo

+0

@Timo检查更新的答案请 – imTachu

+0

也没有工作。 –