Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Résolution des problèmes liés aux intégrations Lambda d’API HTTP

Mode de mise au point
Résolution des problèmes liés aux intégrations Lambda d’API HTTP - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Vous trouverez ci-dessous des conseils de résolution des erreurs et des problèmes que vous pourriez rencontrer lors de l'utilisation Intégrations AWS Lambda du protocole HTTP APIs.

Problème : Mon API avec une intégration Lambda renvoie {"message":"Internal Server Error"}

Pour résoudre l’erreur interne du serveur, ajoutez la variable de journalisation $context.integrationErrorMessage à votre format de journal et affichez vos journaux d’API HTTP. Pour ce faire, procédez comme suit :

Pour créer un groupe de journaux à l'aide du AWS Management Console
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Choisissez Groupes de journaux.

  3. Sélectionnez Créer un groupe de journaux.

  4. Saisissez un nom de groupe de journaux, puis choisissez Créer.

  5. Notez l’Amazon Resource Name (ARN) de votre groupe de journaux. Le format ARN est arn:aws:logs : ::log-group :. region account-id log-group-name Vous avez besoin de l’ARN du groupe de journaux pour activer la journalisation de l’accès pour votre API HTTP.

Pour ajouter la variable de journalisation $context.integrationErrorMessage
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API HTTP.

  3. Sous Moniteur, choisissez Journalisation.

  4. Sélectionnez une étape de votre API.

  5. Choisissez Modifier, puis activez la journalisation des accès.

  6. Pour Destination du journal, saisissez l’ARN du groupe de journaux que vous avez créé à l’étape précédente.

  7. Pour Format de journal, choisissez CLF. API Gateway crée un exemple de format de journal.

  8. Ajouter $context.integrationErrorMessage à la fin du format de journal.

  9. Choisissez Save (Enregistrer).

Pour afficher les journaux de votre API
  1. Génération de journaux Utilisez un navigateur ou curl pour appeler votre API.

    $curl https://api-id.execute-api.us-west-2.amazonaws.com/route
  2. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  3. Choisissez votre API HTTP.

  4. Sous Moniteur, choisissez Journalisation.

  5. Sélectionnez l’étape de votre API pour laquelle vous avez activé la journalisation.

  6. Choisissez Afficher les connexions CloudWatch.

  7. Choisissez le dernier flux de journaux pour afficher vos journaux d’API HTTP.

  8. Votre entrée de journal doit ressembler à la suivante :

    CloudWatch Enregistre une entrée du journal indiquant le message d'erreur d'intégration envoyé par Lambda.

Comme nous avons ajouté $context.integrationErrorMessage au format de journal, nous voyons un message d’erreur dans nos journaux qui résume le problème.

Vos journaux peuvent inclure un autre message d’erreur indiquant l’existence d’un problème avec votre code de fonction Lambda. Dans ce cas, vérifiez votre code de fonction Lambda et assurez-vous que votre fonction Lambda renvoie une réponse au format requis. Si vos journaux n’incluent pas de message d’erreur, ajoutez $context.error.message et $context.error.responseType à votre format de journal pour plus d’informations pour vous aider à résoudre les problèmes.

Si c’est le cas, les journaux montrent qu’API Gateway ne disposait pas des autorisations requises pour appeler la fonction Lambda.

Lorsque vous créez une intégration Lambda dans la console API Gateway, API Gateway configure automatiquement les autorisations pour appeler la fonction Lambda. Lorsque vous créez une intégration Lambda à l'aide du AWS CLI AWS CloudFormation, ou d'un SDK, vous devez autoriser API Gateway à appeler la fonction. Les commandes d'ajout d'autorisation suivantes autorisent différentes routes d'API HTTP à invoquer une fonction Lambda.

Exemple : pour l’étape $default et la route $default d’une API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/\$default/\$default"
Exemple : pour l’étape prod et la route test d’une API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/prod/*/test"

Vérifiez la politique de fonction dans l’onglet Permissions (Autorisations) de la console Lambda.

Essayez à nouveau d’appeler votre API. Vous devriez voir la réponse de votre fonction Lambda.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.