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

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 délai d'expiration et les erreurs de service internes.

SnapStartNotReadyException

Erreur : une erreur s'est produite (SnapStartNotReadyException) lors de l'appel de l'opération Invoke20150331 : Lambda initialise votre fonction. Il sera prêt à être invoqué une fois que l'état de votre fonction sera atteintACTIVE.

Causes courantes

Cette erreur se produit lorsque vous essayez d'invoquer une version de fonction qui est dans l'Inactiveétat. 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 SnapStartTimeoutException lorsque vous essayez d'invoquer une version de SnapStart fonction.

Cause commune

Pendant la phase de restauration, Lambda restaure le runtime Java et exécute tous les hooks afterRestore() d'exécution. Si un afterRestore() hook d'exécution s'exécute pendant plus de 10 secondes, la Restore phase 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 Restore phase.

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 afterRestore() hameçons sont terminés 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"}

500 Erreur de service interne

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 commune

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 commune

Cette erreur se produit lors de l'utilisation du AWS Systems Manager Parameter Store et de AWS Secrets Manager l'extension avec Lambda SnapStart.

Résolution

Le AWS Systems Manager Parameter Store et AWS Secrets Manager son extension ne sont pas compatibles avec SnapStart. L'extension génère des informations d'identification avec lesquelles communiquer AWS Secrets Manager lors de l'initialisation de la fonction, ce qui provoque des erreurs d'identification expirées lorsqu'elle est utilisée avec. SnapStart

UnknownHostException

Erreur : Impossible d'exécuter la HTTP demande : le certificat pour abc.us-east-1.amazonaws.com ne correspond à aucun des noms alternatifs du sujet.

Cause commune

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

Résolution

Pour éviter les UnknownHostException défaillances de l'environnement d'exécution de Java 11, nous vous recommandons de networkaddress.cache.negative.ttl définir la valeur 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 avec la variable d'AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0environnement.

Échec de création de snapshots

Erreur : AWS Lambda impossible d'appeler votre SnapStart fonction. Si cette erreur persiste, consultez les CloudWatch journaux de votre fonction pour détecter les erreurs d'initialisation.

Résolution

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

Latence de création de snapshots

Problème : Lorsque vous publiez une nouvelle version de fonction, celle-ci reste dans son Pending état pendant une longue période.

Cause commune

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 le devienne. Active Si vous essayez d'invoquer la version de la fonction alors que la fonction est en Pending cours, vous pourriez obtenir un 409ResourceConflictException. 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.