Passer au contenu

Comment résoudre l'erreur « pg module not found » lors de la rotation de ma fonction Lambda Secrets Manager ?

Lecture de 2 minute(s)
0

Je souhaite résoudre l'erreur « pg module not found » dans mes journaux de fonctions AWS Secrets Manager Lambda lorsqu'AWS Lambda ne parvient pas à alterner les secrets.

Brève description

Si la fonction Lambda est automatiquement mise à niveau de Python 3.7 vers une version plus récente, l'erreur « pg module not found » peut s'afficher. Les versions plus récentes, telles que Python 3.9, peuvent ne pas prendre en charge les modules requis. Pour plus d'informations sur les modules et les bibliothèques pris en charge dans les différentes versions de Python dans Lambda, consultez la section Environnements d’exécution pris en charge.

Résolution

Vérifier la version Python de la fonction Lambda

Procédez comme suit :

  1. Ouvrez la console Lambda.

  2. Dans le volet de navigation, choisissez Fonctions, puis sélectionnez le nom du Lambda qui n'a pas fait l’objet d’une rotation.

  3. Choisissez l’onglet Code.

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

  5. Choisissez Actions, Fonction exportation, puis Télécharger le package de déploiement.

  6. Exécutez la commande Linux find 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.
    Remarque : Si vous trouvez des fichiers .so Python 3.7 alors que votre environnement d'exécution Lambda affiche une version plus récente, une incompatibilité de version est confirmée. Vous devez résoudre cette incompatibilité par le biais du processus de mise à jour du modèle CloudFormation.

Mettre à jour le modèle AWS Cloudformation

Pour résoudre l'échec de la fonction Lambda, procédez comme suit :

  1. Mettez à jour le modèle de pile que vous avez utilisé pour créer la fonction Lambda.
  2. Ajoutez la propriété Exécution à l'objet HostedRotationLambda dans AWS::SecretsManager::RotationSchedule HostedRotationLambda.
  3. Redéployez la pile CloudFormation pour appliquer les modifications.
    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

Mettre à niveau une fonction de rotation existante de Python 3.7 vers 3.9

AWS OFFICIELA mis à jour il y a 8 mois