Pourquoi la rotation de la fonction Lambda de Secrets Manager a-t-elle échoué avec le message d'erreur « module pg introuvable » ?

Lecture de 2 minute(s)
0

Ma fonction AWS Secrets Manager AWS Lambda a échoué avec une erreur « module pg introuvable » dans Amazon CloudWatch Logs.

Brève description

Cette erreur peut s'afficher si vous exécutez une fonction Lambda antérieure qui a été automatiquement mise à niveau de Python 3.7 vers une version plus récente de Python.

Résolution

Remplacez la version de la fonction Lambda par Python 3.7 et redéployez la fonction Lambda.

Vérifiez la version Python de la fonction Lambda

1.    Ouvrez la console Lambda.

2.    Dans le volet de navigation, choisissez Fonctions, puis sélectionnez le nom de la fonction Lambda qui n'a pas pu pivoter.

3.    Choisissez l’onglet Code.

4.    Dans les paramètres d'exécution, notez la version Python.

5.    Choisissez Actions, choisissez la fonction d'exportation, puis choisissez Télécharger le package de déploiement.

6.    Exécutez la commande Linux trouver suivante depuis le répertoire du fichier .zip décompressé :

find ./ -name “*cpython-*-x86_64-linux-gnu.so”

7.    Vérifiez que la version du moteur d'exécution Python figure dans le nom du fichier .so. Par exemple _cffi_backend.cpython-37m-x86_64-linux-gnu.so.

Si la version .so n'est pas Python 3.7, Lambda ne peut pas importer la bibliothèque.

Modifier le modèle AWS Cloudformation

Pour résoudre l'échec de la fonction Lambda, modifiez le modèle CloudFormation que vous avez utilisé pour créer la fonction Lambda. Ajoutez la propriété Exécution à l'objet HostedRotationLambda dans AWS::SecretsManager::RotationSchedule. Ensuite, redéployez la pile CloudFormation. CloudFormation remplace la fonction de rotation Lambda par Python 3.7.

Remarque : Pour Python 3.7, la valeur de la clé d'exécution doit être python3.7.


Informations connexes

Résolution des problèmes liés à AWS Secrets Manager

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an