web-dev-qa-db-fra.com

"message": "Erreur de serveur interne" avec la passerelle Lambda/API et iOS

J'ai configuré une fonction lambda et créé des méthodes GET et POST dans la passerelle API qui semblent fonctionner correctement lors de leur test dans l'application Web . J'essaie ensuite d'appeler les fonctions dans iOS. application configurée à l’aide du hub mobile. Les fonctions fonctionnent également parfaitement dans l'installation de test via le hub mobile, mais lorsque je teste réellement les fonctions à l'intérieur de l'application, je reçois: 

"message" : "Internal server error"

Je sais que l'erreur n'est pas une source de travail, mais je ne peux pas trouver un moyen d'obtenir une description plus détaillée de l'erreur.

Des idées?

7
user3599895

Cela peut se produire car votre fonction Lambda n'est pas configurée pour renvoyer un code d'état HTTP.

Changer de

exports.handler = (event, context, callback) => {
    callback(null, 'Hello from Lambda');
};

à

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

Devrait résoudre le problème.

22
Ricardo Mayerhofer

La JSON.stringify() a résolu mon problème. Le response.body doit être au format String et non pas au JSON. J'espère que ça aide.

exports.sendRes = (body, status = 200) => {
    var response = {
        statusCode: status,
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(body)
    };
    return response;
};
0
Nikhil Manapure