"消息":Lambda/API网关和iOS的"内部服务器错误"问题

use*_*895 8 amazon-web-services ios amazon-dynamodb aws-lambda aws-api-gateway

我已经设置了一个lambda函数,并在API网关中创建了一些GET和POST方法,这些方法在Web应用程序中进行测试时似乎工作正常.然后我尝试调用使用移动集线器设置的iOS应用程序中的函数.这些功能也可以通过移动集线器完美地在测试设备内部工作,但是当我实际测试应用程序内部的功能时,我得到:

"message" : "Internal server error"
Run Code Online (Sandbox Code Playgroud)

我知道这个错误并不多,但我无法找到一种方法来获得更详细的错误描述.

有任何想法吗?

Ric*_*fer 26

这可能是因为您的Lambda函数未设置为返回HTTP状态代码.

改变

exports.handler = (event, context, callback) => {
    callback(null, 'Hello from Lambda');
};
Run Code Online (Sandbox Code Playgroud)

exports.handler = (event, context, callback) => {
    callback(null, { statusCode: 200, body: 'Hello from Lambda' });
};
Run Code Online (Sandbox Code Playgroud)

应该解决这个问题.


Nik*_*ure 5

解决JSON.stringify()了我的问题。需要response.body采用String格式而不是JSON. 我希望这有帮助。

exports.sendRes = (body, status = 200) => {
    var response = {
        statusCode: status,
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(body)
    };
    return response;
};
Run Code Online (Sandbox Code Playgroud)