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?
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.
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;
};