Pourquoi la rotation de ma fonction Lambda de Secrets Manager a-t-elle échoué avec une erreur « module pg introuvable » ?
Dernière mise à jour : 03/03/2023
Ma fonction AWS Secrets Manager AWS Lambda a échoué en raison d'une erreur « module pg introuvable » dans Amazon CloudWatch Logs.
Brève description
Vous pouvez recevoir cette erreur 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. Cliquez sur 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 find suivante à partir du répertoire du fichier .zip décompressé :
find ./ -name “*cpython-*-x86_64-linux-gnu.so”
7. Vérifiez que la version de l’exécution Python se trouve 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. Redéployez ensuite la pile CloudFormation. CloudFormation redéfinit la fonction de rotation Lambda en Python 3.7.
Remarque : pour Python 3.7, la valeur de la clé d'exécution doit être python37.
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?