

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
<a name="troubleshooting-invocation"></a>

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](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html).

**Topics**
+ [Lambda : expiration de la fonction pendant la phase d’initialisation (Sandbox.Timedout)](#troubleshooting-timeouts)
+ [IAM : lambda : non autorisé InvokeFunction](#troubleshooting-invocation-noauth)
+ [Lambda : Impossible de trouver un bootstrap valide (Runtime). InvalidEntrypoint)](#troubleshooting-invocation-bootstrap)
+ [Lambda : L'opération ne peut pas être effectuée ResourceConflictException](#troubleshooting-invocation-ResourceConflictException)
+ [Lambda : La fonction est bloquée à l’état Pending (En attente)](#troubleshooting-invocation-pending)
+ [Lambda : Une fonction utilise toute la simultanéité](#troubleshooting-invocation-allconcurrency)
+ [Général : Impossible d’invoquer la fonction avec d’autres comptes ou services](#troubleshooting-invocation-cannotinvoke)
+ [Général : L’invocation de la fonction boucle](#troubleshooting-invocation-loop)
+ [Lambda : Routage d’alias avec une simultanéité approvisionnée](#troubleshooting-invocation-alias)
+ [Lambda : Démarrages à froid avec la simultanéité allouée](#troubleshooting-invocation-coldstart)
+ [Lambda : Démarrages à froid avec de nouvelles versions](#troubleshooting-invocation-newversion)
+ [Lambda : sortie inattendue de Node.js pendant l'exécution (Runtime). NodejsExit)](#troubleshooting-invocation-nodejs-exit)
+ [EFS : La fonction n’a pas pu monter le système de fichiers EFS](#troubleshooting-invocation-efsmount)
+ [EFS : La fonction n’a pas pu se connecter au système de fichiers EFS](#troubleshooting-invocation-efsconnect)
+ [EFS : La fonction n’a pas pu monter le système de fichiers EFS en raison d’une expiration de délai](#troubleshooting-invocation-efstimeout)
+ [Lambda : Lambda a détecté un processus d’E/S qui prenait trop de temps](#troubleshooting-invocation-ioprocess)
+ [Conteneur : CodeArtifactUserException erreurs](#troubleshooting-deployment-container-artifact)
+ [Conteneur : InvalidEntrypoint erreurs](#troubleshooting-deployment-container-entrypoint)

## Lambda : expiration de la fonction pendant la phase d’initialisation (Sandbox.Timedout)
<a name="troubleshooting-timeouts"></a>

 **Erreur :** *Task timed out after 3.00 seconds* 

Lorsque la phase d’[initialisation](lambda-runtime-environment.md#runtimes-lifecycle-ib) expire, Lambda initialise à nouveau l’environnement d’exécution en relançant la phase `Init` lorsque la prochaine demande d’invocation arrive. Cela s’appelle une [init supprimée](lambda-runtime-environment.md#suppressed-init). Toutefois, si votre fonction est configurée avec un [délai d’expiration court](configuration-timeout.md) (généralement environ 3 secondes), l’initialisation supprimée risque de ne pas se terminer pendant le délai imparti, ce qui provoquera une nouvelle expiration de la phase `Init`. Sinon, l’initialisation supprimée se termine mais ne laisse pas suffisamment de temps à la phase d’[invocation](lambda-runtime-environment.md#runtimes-lifecycle-invoke) pour se terminer, ce qui entraîne l’expiration de la phase `Invoke`.

Pour réduire les erreurs d’expiration, utilisez l’une des stratégies suivantes :
+ **Augmentez la durée du délai d’expiration de la fonction** : prolongez le [délai d’expiration](configuration-timeout.md) pour donner aux phases `Invoke` et `Init` et le temps de se terminer.
+ **Augmentez l’allocation de mémoire de la fonction** : plus de [mémoire](configuration-memory.md) signifie également une allocation plus proportionnelle du processeur, ce qui peut accélérer à la fois les phases `Invoke` et `Init`.
+ **Optimisez le code d’initialisation de la fonction** : réduisez le temps nécessaire à l’initialisation afin de garantir que les phases `Init` et `Invoke` puissent se terminer dans le délai configuré.

## IAM : lambda : non autorisé InvokeFunction
<a name="troubleshooting-invocation-noauth"></a>

 **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 le **AWSLambdarôle** de stratégie AWS géré à votre utilisateur ou ajoutez une politique personnalisée qui autorise l'`lambda:InvokeFunction`action 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-permissions.md).

## Lambda : Impossible de trouver un bootstrap valide (Runtime). InvalidEntrypoint)
<a name="troubleshooting-invocation-bootstrap"></a>

 **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
<a name="troubleshooting-invocation-ResourceConflictException"></a>

 **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](functions-states.md).

## Lambda : La fonction est bloquée à l’état Pending (En attente)
<a name="troubleshooting-invocation-pending"></a>

 **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 :
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)

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é
<a name="troubleshooting-invocation-allconcurrency"></a>

 **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.](configuration-concurrency.md) 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
<a name="troubleshooting-invocation-cannotinvoke"></a>

 **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](lambda-services.md) et comptes l’autorisation d’invoquer une fonction dans la [stratégie basée sur les ressources](access-control-resource-based.md)de la fonction. Si l’appelant se trouve dans un autre compte, cet utilisateur doit également avoir [l’autorisation d’invoquer des fonctions](access-control-identity-based.md). 

## Général : L’invocation de la fonction boucle
<a name="troubleshooting-invocation-loop"></a>

 **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](with-s3.md). Pour arrêter l’exécution de la fonction, réduisez la [simultanéité](lambda-concurrency.md) disponible de votre fonction à zéro, ce qui limite toutes les invocations futures. 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. SDKs Pour de plus amples informations, veuillez consulter [Utilisation de la détection de boucle récursive Lambda pour prévenir les boucles infinies](invocation-recursion.md).

## Lambda : Routage d’alias avec une simultanéité approvisionnée
<a name="troubleshooting-invocation-alias"></a>

 **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](monitoring-metrics-types.md#invocation-metrics) 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
<a name="troubleshooting-invocation-coldstart"></a>

 **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é](provisioned-concurrency.md), 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 :
+  [Vérifiez que la simultanéité allouée est activée](provisioned-concurrency.md) sur la version de fonction ou l’alias.
**Note**  
La simultanéité allouée n’est pas configurable sur la [version non publiée de la fonction](configuration-versions.md) (\$1LATEST).
+ Assurez-vous que vos déclencheurs invoquent la version ou l’alias de fonction correct. Par exemple, si vous utilisez Amazon API Gateway, vérifiez qu’API Gateway invoque la version de fonction ou l’alias avec la simultanéité approvisionnée, et non \$1LATEST. Pour confirmer que la simultanéité provisionnée est utilisée, vous pouvez consulter la métrique [ProvisionedConcurrencyInvocations Amazon CloudWatch ](monitoring-concurrency.md#provisioned-concurrency-metrics). Une valeur non nulle indique que la fonction traite des invocations sur les environnements d’exécution initialisés.
+ [Déterminez si la simultanéité de vos fonctions dépasse le niveau configuré de simultanéité provisionnée en vérifiant la métrique. ProvisionedConcurrencySpilloverInvocations CloudWatch](monitoring-concurrency.md#provisioned-concurrency-metrics) Une valeur différente de zéro indique que toute la simultanéité allouée est en cours d’utilisation et qu’une invocation s’est produite avec un démarrage à froid.
+ Vérifiez la [fréquence des invocations](gettingstarted-limits.md#api-requests) (demandes par seconde). Les fonctions avec simultanéité allouée ont un taux maximal de 10 demandes par seconde par simultanéité allouée. Par exemple, une fonction configurée avec une simultané allouée de 100 peut traiter 1 000 demandes par seconde. Si le taux d’invocations dépasse 1 000 requêtes par seconde, certains démarrages à froid peuvent se produire.

## Lambda : Démarrages à froid avec de nouvelles versions
<a name="troubleshooting-invocation-newversion"></a>

 **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 : KMSDisabled exception :** *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.

## Lambda : sortie inattendue de Node.js pendant l'exécution (Runtime). NodejsExit)
<a name="troubleshooting-invocation-nodejs-exit"></a>

**Problème :** le *client d'exécution Lambda a détecté un code de sortie Node.js inattendu*.

Cette erreur se produit lorsque votre fonction se ferme avant que toutes les promesses ne soient réglées, par exemple en raison d'un bogue de code. Cela peut également se produire lorsque Node.js détecte un blocage empêchant le règlement des promesses. Cette erreur affecte uniquement les gestionnaires de style asynchrone, pas les gestionnaires de style rappel.

**Runtimes concernés :** Node.js 18 et versions ultérieures.

**Pour résoudre ce problème, procédez comme suit :**

1. Vérifiez que le code de votre fonction ne contient pas de promesses non réglées dans les gestionnaires asynchrones.

1. Assurez-vous que toutes les promesses sont correctement réglées (résolues ou rejetées) avant la fin de la fonction.

1. Vérifiez votre code pour détecter les conditions de course potentielles lors d'opérations asynchrones.

Pour plus d'informations sur les codes de sortie de Node.js et l'arrêt des processus, consultez la [documentation Node.js](https://nodejs.org/docs/latest/api/process.html#exit-codes).

## EFS : La fonction n’a pas pu monter le système de fichiers EFS
<a name="troubleshooting-invocation-efsmount"></a>

 **Erreur EFSMount FailureException :** *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](configuration-filesystem.md) 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
<a name="troubleshooting-invocation-efsconnect"></a>

 **Erreur EFSMount ConnectivityException :** *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](configuration-filesystem.md) de la fonction avec le protocole NFS (port TCP 2049). Vérifiez le [groupe de sécurité et la configuration de routage](https://docs.aws.amazon.com/efs/latest/ug/network-access.html) 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
<a name="troubleshooting-invocation-efstimeout"></a>

 **Erreur EFSMount TimeoutException :** *La fonction n'a pas pu monter le système de fichiers EFS avec le point d'accès \$1arn:aws:elasticfilesystem:us-east- 2:123456789012:access-point/fsap-015cxmplb72b405fd*\$1 en raison d'un délai de montage dépassé. 

La fonction a pu se connecter au [système de fichiers](configuration-filesystem.md) 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](configuration-concurrency.md) 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
<a name="troubleshooting-invocation-ioprocess"></a>

 *EFSIOException: Cette instance de fonction a été arrêtée car Lambda a détecté un processus d'E/S trop long.* 

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é.

## Conteneur : CodeArtifactUserException erreurs
<a name="troubleshooting-deployment-container-artifact"></a>

**Erreur :** *message CodeArtifactUserPendingException d'erreur*

L'optimisation CodeArtifact est en attente. La fonction passera à l’[état Actif](functions-states.md) lorsque Lambda aura terminé l’optimisation. Code de réponse HTTP : 409.

**Erreur :** *message CodeArtifactUserDeletedException d'erreur*

 CodeArtifact Il est prévu de le supprimer. Code de réponse HTTP : 409.

**Erreur :** *message CodeArtifactUserFailedException d'erreur*

Lambda n'a pas réussi à optimiser le code. Vous devez corriger le code et le charger à nouveau. Code de réponse HTTP : 409.

## Conteneur : InvalidEntrypoint erreurs
<a name="troubleshooting-deployment-container-entrypoint"></a>

**Erreur :** *Runtime. ExitError ou « ErrorType » : « Runtime. InvalidEntrypoint*«

Vérifiez que l'ENTRYPOINT de votre image de conteneur inclut le chemin absolu comme emplacement. Vérifiez également que l'image ne contient pas de lien symbolique en tant qu'ENTRYPOINT.

**Erreur :** *vous utilisez un CloudFormation modèle et votre conteneur ENTRYPOINT est remplacé par une valeur nulle ou* vide.

Passez en revue la [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-function-imageconfig.html)ressource dans le CloudFormation modèle. Si vous déclarez une ressource `ImageConfig` dans votre modèle, vous devez fournir des valeurs non vides pour les trois propriétés.