Résoudre les problèmes de déploiement 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 de déploiement dans Lambda

Lorsque vous mettez à jour votre fonction, Lambda déploie la modification en lançant de nouvelles instances de cette fonction avec le code ou les paramètres mis à jour. Les erreurs de déploiement empêchent l’utilisation de la nouvelle version et peuvent résulter de problèmes liés au package de déploiement, au code, à vos autorisations ou à vos outils.

Lorsque vous déployez des mises à jour de votre fonction directement avec le Lambda API ou avec un client tel que le AWS CLI, vous pouvez voir les erreurs provenant de Lambda directement dans la sortie. Si vous utilisez des services tels que AWS CloudFormation AWS CodeDeploy, ou AWS CodePipeline, recherchez la réponse de Lambda dans les journaux ou le flux d'événements de ce service.

Les rubriques suivantes fournissent des conseils de résolution des erreurs et des problèmes que vous pourriez rencontrer lors de l'utilisation de LambdaAPI, de la console ou des outils. Si vous rencontrez un problème qui n’est pas répertorié ici, vous pouvez utiliser le bouton Commentaire sur cette page pour le signaler.

Pour plus de conseils de dépannage et de réponses aux questions courantes de support, visitez le Centre de connaissances AWS.

Pour plus d’informations sur le débogage et le dépannage des applications Lambda, consultez Débogage dans Serverless Land.

Général : autorisation refusée/impossible de charger ce fichier

Erreur EACCES : autorisation refusée, ouvrez « /var/task/index.js »

Erreur : impossible de charger ce fichier - cette fonction

Erreur : [Errno 13] Autorisation refusée : ’/var/task/function.py’

Le runtime Lambda a besoin d’une autorisation pour lire les fichiers de votre package de déploiement. Dans la notation octale des autorisations Linux, Lambda a besoin de 644 autorisations pour les fichiers non exécutables (rw-r--r--) et de 755 autorisations () pour les répertoires et les fichiers exécutables. rwxr-xr-x

Sous Linux et macOS, utilisez la commande chmod pour modifier les autorisations de fichiers sur les fichiers et les répertoires de votre package de déploiement. Par exemple, pour accorder les autorisations appropriées à un fichier exécutable, exécutez la commande suivante.

chmod 755 <filepath>

Pour modifier les autorisations relatives aux fichiers dans Windows, voir Définir, afficher, modifier ou supprimer des autorisations sur un objet dans la documentation Microsoft Windows.

Général : Une erreur se produit lors de l'appel du UpdateFunctionCode

Erreur : une erreur s'est produite (RequestEntityTooLargeException) lors de l'appel de l' UpdateFunctionCodeopération

Lorsque vous téléchargez un package de déploiement ou une archive de couches directement vers Lambda, la taille du ZIP fichier est limitée à 50 Mo. Pour charger un fichier plus volumineux, stockez-le dans Amazon S3, puis utilisez les paramètres S3Bucket et S3Key.

Note

Lorsque vous téléchargez un fichier directement avec AWS CLI, ou autrement AWS SDK, le ZIP fichier binaire est converti en base64, ce qui augmente sa taille d'environ 30 %. Pour permettre cela et aussi prendre en compte la taille d’autres paramètres dans la demande, la limite de taille réelle de demande que Lambda applique est supérieure. Pour cette raison, la limite de 50 Mo est approximative.

Amazon S3 : code d'erreur PermanentRedirect.

Erreur : une erreur s'est produite pendant GetObject. Code d'erreur S3 : PermanentRedirect. Message d’erreur S3 : Le compartiment se trouve dans cette région : us-east-2. Veuillez utiliser cette région pour renouveler la demande

Lorsque vous chargez le package de déploiement d’une fonction à partir d’un compartiment Amazon S3, le compartiment doit se trouver dans la même région que la fonction. Ce problème peut se produire lorsque vous spécifiez un objet Amazon S3 dans un appel à UpdateFunctionCode, ou lorsque vous utilisez les commandes de package et de déploiement dans le AWS CLI ou AWS SAM CLI. Créez un compartiment d’artefact de déploiement pour chaque région dans laquelle vous développez des applications.

Général : impossible de trouver, impossible de charger, impossible d’importer, classe introuvable, aucun fichier ou répertoire de ce type

Erreur : module ’function’ introuvable

Erreur : impossible de charger ce fichier - cette fonction

Erreur : impossible d’importer le module ’function’

Erreur : Classe introuvable : Function.handler

Erreur : fork/exec /var/task/function : aucun fichier ou répertoire de ce type

Erreur : impossible de charger le type ’Function.Handler’ à partir de l’assemblage ’Function’.

Le nom du fichier ou de la classe dans la configuration du gestionnaire de votre fonction ne correspond pas à votre code. Consultez la section suivante pour plus d’informations.

Général : gestionnaire de méthode non défini

Erreur : index.handler n’est pas défini ou n’est pas exporté

Erreur : gestionnaire ’handler’ manquant dans le module ’function’

Erreur : « gestionnaire » de méthode non défini pour #<:0x000055b76ccebf98> LambdaHandler

Erreur : aucune méthode publique nommée handleRequest avec la signature de méthode appropriée n'a été trouvée dans la classe Function.Handler

Erreur : Impossible de trouver la méthode « handleRequest » dans le type « Function.Handler » de l'assemblage « Function »

Le nom de la méthode du gestionnaire dans la configuration du gestionnaire de votre fonction ne correspond pas à votre code. Chaque environnement d'exécution définit une convention de dénomination pour les gestionnaires, telle que filename.methodname. Le gestionnaire est la méthode du code de votre fonction que le moteur d'exécution exécute lorsque votre fonction est invoquée.

Pour certains langages, Lambda fournit une bibliothèque avec une interface pour laquelle une méthode de gestionnaire doit avoir un nom spécifique. Pour plus d’informations sur l’attribution de noms de gestionnaire pour chaque langue, consultez les rubriques suivantes.

Lambda : échec de la conversion de couche

Erreur : la conversion de la couche Lambda a échoué. Pour obtenir des conseils sur la résolution de ce problème, consultez la page Résolution des problèmes de déploiement dans Lambda du Guide de l’utilisateur Lambda.

Lorsque vous configurez une fonction Lambda avec une couche, Lambda fusionne la couche avec le code de votre fonction. Si ce processus échoue, Lambda renvoie cette erreur. Si vous rencontrez cette erreur, réalisez les actions suivantes :

  • Supprimer tous les fichiers inutiles de votre couche

  • Supprimer tous les liens symboliques de votre couche

  • Renommer tous les fichiers qui ont le même nom qu’un répertoire dans l’une des couches de votre fonction

Lambda : ou InvalidParameterValueException RequestEntityTooLargeException

Erreur InvalidParameterValueException : Lambda n'a pas pu configurer vos variables d'environnement car les variables d'environnement que vous avez fournies ont dépassé la limite de 4 Ko. Corde mesurée : {"A1" : » uSFe Y5 cyPiPn 7atNx5bSM...

Erreur RequestEntityTooLargeException : la demande doit être inférieure à 5120 octets pour l'opération UpdateFunctionConfiguration

La taille maximale de l’objet variable stocké dans la configuration de la fonction ne doit pas dépasser 4096 octets. Cela inclut les noms de clés, les valeurs, les guillemets, les virgules et les crochets. La taille totale du corps de la HTTP demande est également limitée.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs20.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Environment": { "Variables": { "BUCKET": "amzn-s3-demo-bucket", "KEY": "file.txt" } }, ... }

Dans cet exemple, l’objet comporte 39 caractères et utilise 39 octets lorsqu’il est stocké (sans espace) comme chaîne {"BUCKET":"amzn-s3-demo-bucket","KEY":"file.txt"}. ASCIILes caractères standard des valeurs des variables d'environnement utilisent un octet chacun. Les caractères étendus ASCII et Unicode peuvent utiliser entre 2 et 4 octets par caractère.

Lambda : InvalidParameterValueException

Erreur InvalidParameterValueException : Lambda n'a pas pu configurer vos variables d'environnement car les variables d'environnement que vous avez fournies contiennent des clés réservées dont la modification n'est actuellement pas prise en charge.

Lambda réserve certaines clés de variables d’environnement pour une utilisation interne. Par exemple, AWS_REGION est utilisé par l’environnement d’exécution pour déterminer la région actuelle et ne peut pas être remplacé. D’autres variables, comme PATH, sont utilisées par l’environnement d’exécution, mais peuvent être étendues dans la configuration de votre fonction. Pour obtenir une liste complète, veuillez consulter Variables d’environnement d’exécution définies.

Lambda : quotas de simultanéité et de mémoire

Erreur : la fonction spécifiée ConcurrentExecutions réduit le compte en UnreservedConcurrentExecution dessous de sa valeur minimale

Erreur : la valeur MemorySize « » n'a pas satisfait la contrainte : le membre doit avoir une valeur inférieure ou égale à 3008

Ces erreurs se produisent lorsque vous dépassez les quotas de simultanéité ou de mémoire pour votre compte. AWS Les nouveaux comptes ont réduit la simultanéité et les quotas de mémoire. Pour résoudre les erreurs liées à la simultanéité, vous pouvez demander une augmentation des quotas. Vous ne pouvez pas demander d’augmentation des quotas de mémoire.

  • Concurrence : un message d'erreur peut s'afficher si vous essayez de créer une fonction à l'aide de la simultanéité réservée ou provisionnée, ou si votre demande de simultanéité par fonction (PutFunctionConcurrency) dépasse le quota de simultanéité de votre compte.

  • Mémoire : des erreurs surviennent lorsque la capacité de mémoire allouée à la fonction dépasse le quota de mémoire de votre compte.