Comment éliminer les erreurs 502 et 500 lorsque j'appelle ma fonction Lambda ?

Date de la dernière mise à jour : 25/09/2019

Lorsque j'essaie d'appeler ma fonction AWS Lambda, la demande échoue avec l'erreur 502 ou 500 côté serveur. Comment éliminer ces erreurs ?

Solution

Identifiez l'erreur d'API Invoke Lambda que vous recevez, puis suivez les étapes pour l'éliminer. Pour obtenir la liste des erreurs possibles avec les descriptions, consultez Erreurs dans la référence d'API Invoke Lambda.

EC2AccessDeniedException

Le rôle d'exécution de votre fonction Lambda doit disposer des autorisations suivantes pour accéder à Amazon EC2 (Elastic Compute Cloud) dans un VPC (Amazon Virtual Private Cloud) :

  • ec2:CreateNetworkInterface
  • ec2:DescribeNetworkInterfaces
  • ec2:DeleteNetworkInterface

Ces autorisations sont incluses dans la stratégie gérée AWS AWSLambdaVPCAccessExecutionRole. Pour plus d'informations, consultez Rôle d'exécution Autorisations utilisateur.

EC2ThrottledException

AWS limite les demandes d'API Amazon EC2 pour chaque compte AWS en fonction de la région afin d'améliorer les performances du service. Pour plus d'informations, consultez Taux de demandes d'API de requête.

Utilisez Amazon CloudWatch pour vérifier le nombre de demandes d'API Amazon EC2 effectuées sur votre compte AWS. Si votre compte dépasse le taux de demandes maximum autorisé, réduisez le nombre de demandes que vous effectuez en dehors de Lambda.

EC2UnexpectedException

Cette erreur se produit généralement lorsque Lambda reçoit une erreur 500 lors de la tentative de création d'une interface réseau Elastic (ENI). Relancez la demande en utilisant un algorithme d'interruption exponentiel. Pour plus d'informations, consultez Nouvelles tentatives après erreur et interruptions exponentielles dans AWS.

InvalidSecurityGroupIDException

Vérifiez que vous avez spécifié l'ID de groupe de sécurité Amazon VPC correct dans la configuration de votre fonction Lambda. Pour plus d'informations, consultez Configuration d'une fonction Lambda pour accéder aux ressources dans un VPC.

ENILimitReachedException

Les fonctions Lambda activées par Amazon VPC créent des ENI dans les sous-réseaux associés. Au fur et à mesure que ces fonctions évoluent, d'autres ENI sont créées. Il existe des limites d'ENI par compte et par région. Pour afficher votre limite actuelle, consultez Limites dans la console Amazon EC2.

Votre VPC Amazon doit disposer d'une capacité ENI suffisante pour répondre aux exigences de votre fonction Lambda. Pour évaluer les besoins ENI de votre fonction, utilisez la formule suivante :

Projected peak concurrent executions * (Memory in GB / 3 GB)

Si la limite ENI actuelle de votre VPC Amazon ne répond pas à vos besoins, vous pouvez demander une augmentation de la limite via le Centre AWS Support. (Sous Requests (Demandes), pour Limit (Limite), choisissez Network Interfaces per Region (Interfaces réseau par région).

SubnetIPAddressLimitReachedException

La taille d'un sous-réseau est définie par son bloc d'adresse CIDR. Vérifiez que les blocs d'adresse CIDR que vous spécifiez dans votre Amazon VPC disposent de suffisamment d'adresses IP libres pour besoins de votre fonction Lambda activée par Amazon VPC. Pour plus d'informations, consultez Dimensionnement des VPC et des sous-réseaux.

KMSAccessDeniedException

Vérifiez les autorisations AWS IAM (AWS Identity and Access Management) de votre fonction Lambda, ainsi que vos stratégies de clé AWS KMS (AWS Key Management Service).

Si vous utilisez une stratégie de clé personnalisée pour la clé CMK (Customer Master Key), la stratégie IAM pour le rôle d'exécution de votre fonction Lambda doit autoriser l'action kms:Decrypt. Si vous utilisez la stratégie de clé par défaut, votre rôle d'exécution Lambda dispose déjà d'autorisations suffisantes pour accéder à AWS KMS.

En outre, l'utilisateur IAM qui crée et met à jour la fonction Lambda doit avoir l'autorisation d'utiliser la clé CMK.

Pour plus d'informations, consultez la section Utilisation des stratégies de clé dans AWS KMS.

KMSDisabledException

Vérifiez que la clé CMK est activée. Pour plus d'informations, consultez Activation et désactivation des clés.

KMSInvalidStateException

Votre clé CMK a un état non valide pour les demandes d'API AWS KMS Decrypt . Vérifiez que la clé CMK est activée.

Pour plus d'informations, consultez Impact de l'état d'une clé sur l'utilisation d'une clé CMK (Customer Master Key).

KMSNotFoundException

La clé CMK spécifiée dans votre demande doit se trouver dans la même région AWS et le même compte que votre fonction Lambda. Si la région est différente, utilisez une autre clé CMK (ou créez une clé CMK) dans la même région.

InvalidRuntimeException

Configurez votre fonction Lambda pour utiliser l'environnement d'exécution Lambda correct pour le code de votre fonction.

InvalidZipFileException

Vérifiez les autorisations sur votre package de déploiement Lambda. Pour plus d'informations, consultez Comment éliminer les erreurs Lambda « autorisation refusée » ou « impossible d'importer le module lors du téléchargement d'un package de déploiement ? ».

Vérifiez également que vous avez créé le fichier de package de déploiement correctement. Pour plus d'informations, consultez Création d'un package de déploiement.

ServiceException

Dans de rares occasions, le service Lambda lui-même peut rencontrer une erreur interne. Si vous obtenez une erreur 500, consultez AWS Service Health Dashboard pour déterminer si Lambda n'est pas disponible. Pour plus d'informations, consultez la section AWS est-il hors service ?

Si Lambda est disponible, relancer la demande pour appeler votre fonction Lambda. Si le problème persiste, contactez AWS Support depuis le Centre AWS Support.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?