web-dev-qa-db-fra.com

message: "Erreur interne du serveur" lorsque vous tentez d'accéder à une API de passerelle aws

Création de la fonction Lambda Hello world à l'aide de Node.js et création du déclencheur GateWay de l'API pour l'appel, tentative d'URL pour accéder à la fonction Lambda, obtention de l'erreur ci-dessous.

message: "Erreur interne du serveur".

(très nouveau sur AWS)

13
user1671308

Vous devez passer la statusCode après avoir exécuté la fonction Lambda. Si vous ne le transmettez pas, la passerelle API déclenchera une erreur 502 Bad Gateway par défaut.

message = {
   'message': 'Execution started successfully!'
}
return {
    'statusCode': 200,
    'headers': {'Content-Type': 'application/json'},
    'body': json.dumps(message)
}

EDIT: Cet exemple est pour Python. Pour node.js, il vous suffit de gérer le rappel, le message est fondamentalement le même. 

callback(null, {
    statusCode: 200,
    body: JSON.stringify(message),
    headers: {'Content-Type': 'application/json'}
});
19
ljmocic

J'ai eu ce problème, mais dans mon cas, j'utilisais API Gateway et la fonction Java lambda. En regardant dans cloudwatch, il n'y avait pas d'erreur, tout se passe bien. Le problème se produit lorsque API Gateway tente de restituer la réponse . Dans mon cas, j'avais dans mon objet de réponse, le code de statut qui n'était pas un int, alors que la passerelle d'API en avait besoin.

Ce 

    private final ResponseCode statusCode;
    private final String body;
    private final Map<String, String> headers;
    private final boolean isBase64Encoded;

Après avoir changé statusCode en int

    private final int statusCode;

Cela marche

0
onlyme

J'ai eu ce problème en utilisant API Gateway + Lambda. Dans mon cas, le problème était simplement une question de permission. J'utilisais des étapes dans mon API.

Je devais exécuter

aws lambda add-permission --function-name X --source-arn "X" --principal apigateway.amazonaws.com --statement-id X --action lambda:InvokeFunction

J'espère que cela t'aides.

0
miqrc

Cette erreur indique qu'il y a eu un problème avec la configuration de l'API. Si vous activez CloudWatch Logs, vous pouvez voir plus d'informations: https://aws.Amazon.com/premiumsupport/knowledge-center/api-gateway-cloudwatch-logs/

0
Jack Kohn - AWS