View a markdown version of this page

Résolution des SnapStart erreurs liées aux fonctions 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ésolution des SnapStart erreurs liées aux fonctions Lambda

Cette page aborde les problèmes courants qui se produisent lors de l'utilisation de Lambda SnapStart, notamment les erreurs de création de snapshots, les erreurs de temporisation et les erreurs de service interne.

SnapStartNotReadyException

Erreur : une erreur s'est produite (SnapStartNotReadyException) lors de l'appel de l'opération Invoke20150331 : Lambda est en train d'initialiser votre fonction. L’invocation sera possible une fois que l’état de votre fonction deviendra ACTIVE.

Causes courantes

Cette erreur se produit lorsque vous essayez d’invoquer une version de fonction qui se trouve à l’état Inactive. La version de votre fonction devient Inactive lorsqu’elle n’a pas été invoquée depuis 14 jours ou lorsque Lambda recycle périodiquement l’environnement d’exécution.

Résolution

Attendez que la fonction version atteigne l’état Active, puis invoquez-la à nouveau.

SnapStartTimeoutException

Problème : vous recevez un message SnapStartTimeoutException lorsque vous essayez d'invoquer une version de SnapStart fonction.

Cause courante

Pendant la phase de restauration, Lambda restaure l’environnement d’exécution Java et exécute tous les hooks d’exécution après la restauration. Si un hook d’exécution après la restauration s’exécute pendant plus de 10 secondes, la phase Restore expire et vous obtenez une erreur lorsque vous essayez d’invoquer la fonction. Les problèmes de connexion réseau et d’identification peuvent également entraîner des délais d’attente de la phase Restore.

Résolution

Consultez les CloudWatch journaux de la fonction pour détecter les erreurs de temporisation survenues pendant la phase de restauration. Assurez-vous que tous les hooks après restauration se terminent en moins de 10 secondes.

Exemple CloudWatch journal
{ "cause": "Lambda couldn't restore the snapshot within the timeout limit. (Service: Lambda, Status Code: 408, Request ID: 11a222c3-410f-427c-ab22-931d6bcbf4f2)", "error": "Lambda.SnapStartTimeoutException"}

Erreur interne du service 500

Erreur : Lambda n’a pas pu créer de nouvel instantané car vous avez atteint votre limite de création d’instantanés simultanés.

Cause courante

Une erreur 500 est une erreur interne au sein du service Lambda lui-même, plutôt qu’un problème lié à votre fonction ou à votre code. Ces erreurs sont souvent intermittentes.

Résolution

Réessayez de publier la version de la fonction.

401 Accès non autorisé

Erreur : jeton de session ou clé d’en-tête incorrect

Cause courante

Cette erreur se produit lorsque vous utilisez le magasin de AWS Systems Manager paramètres et l' AWS Secrets Manager extension avec Lambda SnapStart. Lorsque votre fonction utilise SnapStart, elle obtient des informations d'identification à partir d'un point de terminaison de conteneur, et Lambda ne définit pas la variable d'AWS_SESSION_TOKENenvironnement. Si votre fonction définit l'X-Aws-Parameters-Secrets-Tokenen-tête à partir de cette variable d'environnement, l'en-tête est vide et l'extension rejette la demande.

Résolution

Pour corriger cette erreur, utilisez la chaîne de fournisseurs d'informations d'identification du AWS SDK pour récupérer le jeton de session au lieu de lire directement la variable d'AWS_SESSION_TOKENenvironnement. Définissez l'X-Aws-Parameters-Secrets-Tokenen-tête sur le jeton renvoyé par la chaîne de fournisseurs. La chaîne de fournisseurs d'informations d'identification renvoie le jeton de session correct dans tous les modes d'initialisation, y compris. SnapStart Pour obtenir un exemple de code, consultez Utiliser des secrets Secrets Manager dans des fonctions Lambda.

UnknownHostException (Java)

Erreur : impossible d’exécuter la requête HTTP : le certificat pour abc.us-east-1.amazonaws.com ne correspond à aucun des noms alternatifs d’objet.

Cause courante

Les fonctions Lambda mettent déjà en cache les réponses DNS. Si vous utilisez un autre cache DNS avec SnapStart, vous risquez de rencontrer des délais de connexion lorsque la fonction reprend à partir d'un instantané.

Résolution

Pour éviter les échecs UnknownHostException de l’environnement d’exécution de Java 11, nous vous recommandons de définir la valeur de networkaddress.cache.negative.ttl sur 0. Dans les environnements d’exécution de Java 17 et versions ultérieures, cette étape n’est pas nécessaire. Vous pouvez définir cette propriété pour une fonction Lambda à l’aide de la variable d’environnement AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0.

Échecs de création d’instantanés

Erreur : AWS Lambda impossible d'appeler votre SnapStart fonction. Si cette erreur persiste, vérifiez que les CloudWatch journaux de votre fonction ne contiennent pas d'erreurs d'initialisation.

Résolution

Consultez les CloudWatch journaux Amazon de votre fonction pour connaître les délais d'exécution des hooks avant le point de contrôle. Vous pouvez également essayer de publier une nouvelle version de fonction, ce qui peut parfois résoudre le problème.

Latence de création d’instantanés

Problème : lorsque vous publiez une nouvelle version de fonction, celle-ci reste à l’état Pending pendant une longue période.

Cause courante

Lorsque Lambda crée un instantané, votre code d’initialisation peut s’exécuter jusqu’à 15 minutes. Le délai d’attente est de 130 secondes ou le délai d’expiration de la fonction configurée (900 secondes au maximum), la valeur la plus élevée étant retenue.

Si votre fonction est attachée à un VPC, Lambda devra peut-être également créer des interfaces réseau avant que la fonction ne devienne Active. Si vous essayez d’invoquer la version de la fonction alors que la fonction est Pending, vous pourriez obtenir une erreur 409 ResourceConflictException. Si la fonction est invoquée à l’aide d’un point de terminaison Amazon API Gateway, une erreur 500 peut s’afficher dans API Gateway.

Résolution

Attendez au moins 15 minutes que la version de la fonction soit initialisée avant de l’invoquer.