Résoudre les problèmes d'invocation dans Lambda - AWS Lambda

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.

Résoudre les problèmes d'invocation dans Lambda

Lorsque vous invoquez une fonction Lambda, Lambda valide la demande et vérifie la capacité de dimensionnement avant d'envoyer l'événement à votre fonction ou, pour une invocation asynchrone, à la file d'attente d'événements. Les erreurs d'invocation peuvent être causées par des problèmes de paramètres de demande, de structure d'événement, de paramètres de fonction, d'autorisations utilisateur, d'autorisations de ressources ou de limites.

Si vous invoquez la fonction directement, les erreurs d'invocation sont visibles dans la réponse de Lambda. Si vous invoquez la fonction de manière asynchrone avec un mappage de source d'événement ou via un autre service, vous pouvez trouver des erreurs dans les journaux, une file d'attente de lettres mortes ou une destination en cas d'échec. Les options de gestion des erreurs et le comportement des nouvelles tentatives varient en fonction de la façon dont vous invoquez la fonction et du type d'erreur.

Pour obtenir la liste des types d'erreur que l'opération Invoke peut renvoyer, consultez Invoquer.

IAM : lambda : non autorisé InvokeFunction

Erreur : L'utilisateur : arn:aws:iam : :123456789012 : l'utilisateur/développeur n'est pas autorisé à exécuter : lambda : on resource : my-function InvokeFunction

Votre utilisateur, ou le rôle que vous assumez, doit avoir une autorisation pour invoquer une fonction. Cette exigence s'applique également aux fonctions Lambda et à d'autres ressources de calcul qui invoquent des fonctions. Ajoutez la politique AWS gérée AWSLambdaRoleà votre utilisateur ou ajoutez une politique personnalisée qui autorise l'lambda:InvokeFunctionaction sur la fonction cible.

Note

Le nom de l'action IAM (lambda:InvokeFunction) fait référence à l'opération de l'API Lambda Invoke.

Pour plus d’informations, consultez Gestion des autorisations dans AWS Lambda.

Lambda : Impossible de trouver un bootstrap valide (Runtime). InvalidEntrypoint)

Erreur : impossible de trouver un ou plusieurs bootstrap valides : [/var/task/bootstrap /opt/bootstrap]

Cette erreur se produit généralement lorsque la racine de votre package de déploiement ne contient pas de fichier exécutable nommé bootstrap. Par exemple, si vous déployez une fonction provided.al2023 avec un fichier .zip, le fichier bootstrap doit se trouver à la racine du fichier .zip, et non dans un répertoire.

Lambda : L'opération ne peut pas être effectuée ResourceConflictException

Erreur ResourceConflictException : Impossible d'effectuer l'opération pour le moment. La fonction est actuellement dans l'état suivant : En attente

Lorsque vous connectez une fonction à un cloud privé virtuel (Virtual Private Cloud, VPC) au moment de la création, la fonction passe à l'état Pending pendant que Lambda crée des interfaces réseau Elastic. Pendant ce temps, vous ne pouvez pas invoquer ni modifier votre fonction. Si vous connectez votre fonction à un VPC après la création, vous pouvez l'invoquer pendant que la mise à jour est en attente, mais vous ne pouvez pas modifier son code ni sa configuration.

Pour plus d’informations, consultez États de la fonction Lambda.

Lambda : La fonction est bloquée à l'état Pending (En attente)

Erreur : Une fonction est bloquée à l'état Pending depuis plusieurs minutes.

Si une fonction est bloquée à l'état Pending depuis plus de six minutes, appelez l'une des opérations d'API suivantes pour la débloquer :

Lambda annule l'opération en attente et met la fonction à l'état Failed. Vous pouvez ensuite essayer une autre mise à jour.

Lambda : Une fonction utilise toute la simultanéité

Problème : une fonction utilise toute la simultanéité disponible, limitant ainsi d'autres fonctions.

Pour diviser la simultanéité disponible de votre AWS compte dans une AWS région en groupes, utilisez la simultanéité réservée. La simultanéité réservée garantit qu'une fonction s'adapte toujours à la simultanéité qui lui est assignée et qu'elle n'utilise pas plus de simultanéité que ce qui lui est attribué.

Général : Impossible d'invoquer la fonction avec d'autres comptes ou services

Problème : vous pouvez invoquer la fonction directement, mais elle ne s'exécute pas lorsqu'elle est invoquée par un autre service ou compte.

Vous accordez à d'autres services et comptes l'autorisation d'invoquer une fonction dans la stratégie basée sur les ressourcesde la fonction. Si l'appelant se trouve dans un autre compte, cet utilisateur doit également avoir l'autorisation d'invoquer des fonctions.

Général : L'invocation de la fonction boucle

Problème : La fonction est invoquée en continu dans une boucle.

Cela se produit généralement lorsque votre fonction gère les ressources du même AWS service qui la déclenche. Par exemple, il est possible de créer une fonction qui stocke un objet dans un compartiment Amazon Simple Storage Service (Amazon S3) configuré avec une notification qui invoque à nouveau la fonction. Pour arrêter l'exécution de la fonction, réduisez la simultanéité disponible à zéro, ce qui limite toutes les futures invocations. Identifiez ensuite le chemin de code ou l'erreur de configuration qui a provoqué l'invocation récursive. Lambda détecte et arrête automatiquement les boucles récursives pour certains AWS services et SDK. Pour plus d’informations, consultez Utilisez la détection des boucles récursives Lambda pour empêcher les boucles infinies.

Lambda : Routage d'alias avec une simultanéité approvisionnée

Problème: invocations de débordement de simultanéité approvisionnée pendant le routage d'alias.

Lambda utilise un modèle probabiliste simple pour distribuer le trafic entre les deux versions de la fonction. Quand le niveau de trafic est faible, il se peut que vous observiez une variance élevée entre les pourcentages de trafic configuré et réel sur chaque version. Si votre fonction utilise une simultanéité approvisionnée, vous pouvez éviter des invocations de débordement en configurant un plus grand nombre d'instances de simultanéité approvisionnées pendant que le routage d'alias est actif.

Lambda : Démarrages à froid avec la simultanéité allouée

Problème : Vous remarquez des démarrages à froid après avoir activé la simultanéité allouée.

Lorsque le nombre d'exécutions simultanées sur une fonction est inférieur ou égal au niveau de simultanéité configuré, il ne devrait pas y avoir de démarrage à froid. Pour vous aider à vérifier le bon fonctionnement de la simultanéité, procédez comme suit :

Lambda : Démarrages à froid avec de nouvelles versions

Problème : Vous notez des démarrages à froid lors du déploiement de nouvelles versions de votre fonction.

Lorsque vous mettez à jour un alias de fonction, Lambda déplace automatiquement la simultanéité approvisionnée vers la nouvelle version en fonction des pondérations configurées sur l'alias.

Erreur : KMS DisabledException : Lambda n'a pas pu déchiffrer les variables d'environnement car la clé KMS utilisée est désactivée. Veuillez vérifier les paramètres de clé KMS de la fonction.

Cette erreur peut se produire si votre clé AWS Key Management Service (AWS KMS) est désactivée ou si l'autorisation permettant à Lambda d'utiliser la clé est révoquée. Si l'octroi est manquant, configurez la fonction pour utiliser une autre clé. Ensuite, réaffectez la clé personnalisée pour recréer l'octroi.

EFS : La fonction n'a pas pu monter le système de fichiers EFS

Erreur : EFS MountFailureException : La fonction n'a pas pu monter le système de fichiers EFS avec le point d'accès arn:aws:elasticfilesystem:us-east- 2:123456789012:access-point/fsap-015cxmplb72b405fd.

La demande de montage sur le système de fichiers de la fonction a été rejetée. Vérifiez les autorisations de la fonction et confirmez que son système de fichiers et son point d'accès existent et sont prêts à l'emploi.

EFS : La fonction n'a pas pu se connecter au système de fichiers EFS

Erreur : EFS MountConnectivityException : La fonction n'a pas pu se connecter au système de fichiers Amazon EFS avec le point d'accès arn:aws:elasticfilesystem:us-east- 2:123456789012:access-point/fsap-015cxmplb72b405fd. Vérifiez la configuration de votre réseau et réessayez.

La fonction n'a pas pu établir de connexion au système de fichiers de la fonction avec le protocole NFS (port TCP 2049). Vérifiez le groupe de sécurité et la configuration de routage pour les sous-réseaux du VPC.

Si vous rencontrez ces erreurs après avoir mis à jour les paramètres de configuration VPC de votre fonction, essayez de démonter puis de remonter le système de fichiers.

EFS : La fonction n'a pas pu monter le système de fichiers EFS en raison d'une expiration de délai

Erreur : EFS MountTimeoutException : la fonction n'a pas pu monter le système de fichiers EFS avec le point d'accès {arn:aws:elasticfilesystem:us-east- 2:123456789012:access-point/fsap-015cxmplb72b405fd} en raison d'une expiration du délai de montage.

La fonction a pu se connecter au système de fichiers de la fonction, mais l'opération de montage a expiré. Réessayez après un court laps de temps et envisagez de limiter la concurrence de la fonction pour réduire la charge sur le système de fichiers.

Lambda : Lambda a détecté un processus d'E/S qui prenait trop de temps

EFSIOException : cette instance de fonction a été arrêtée car Lambda a détecté un processus d'E/S qui prenait trop de temps.

Une invocation précédente a expiré et Lambda n'a pas pu mettre fin à l'exécution du gestionnaire de fonction. Ce problème peut se produire lorsqu'un système de fichiers joint manque de crédits de rafale et que le débit de base est insuffisant. Pour augmenter le débit, vous pouvez augmenter la taille du système de fichiers ou utiliser le débit provisionné. Pour plus d’informations, consultez Débit.