Saltar al contenido

¿Cómo soluciono el error «pg module not found» en la rotación de mi función de Lambda de Secrets Manager?

2 minutos de lectura
0

Quiero resolver el error «pg module not found» en los registros de funciones de Lambda de AWS Secrets Manager cuando AWS Lambda no puede rotar los secretos.

Descripción corta

Si la función de Lambda se actualizó automáticamente de Python 3.7 a una versión más reciente, es posible que recibas el error «pg module not found». Es posible que las versiones más recientes, como Python 3.9, no admitan los módulos necesarios. Para obtener información sobre los módulos y bibliotecas compatibles en las versiones de Python en Lambda, consulta Versiones ejecutables compatibles.

Resolución

Compruebe la versión de Python de la función de Lambda

Sigue estos pasos:

  1. Abre la consola de Lambda.

  2. En el panel de navegación, elige Funciones y, a continuación, selecciona el nombre de la función de Lambda que no rotó.

  3. Selecciona la pestaña Código.

  4. En la configuración de versión ejecutable, anota la versión de Python.

  5. Elige Acciones, Función de exportación y, a continuación, Descargar paquete de despliegue.

  6. Ejecuta el siguiente comando find de Linux desde el directorio del archivo .zip sin comprimir:

    find ./ -name “*cpython-*-x86_64-linux-gnu.so”
  7. Comprueba que la versión de la versión ejecutable de Python esté en el nombre del archivo .so.
    Por ejemplo, _cffi_backend.cpython-37m-x86_64-linux-gnu.so.
    Nota: Si encuentras archivos .so de Python 3.7 pero la versión ejecutable de Lambda muestra una versión más reciente, se confirma que no coinciden las versiones. Debes resolver este desajuste mediante el proceso de actualización de la plantilla de CloudFormation.

Actualización de la plantilla de AWS CloudFormation

Para resolver el error de la función de Lambda, sigue estos pasos:

  1. Actualiza la plantilla de pila que utilizaste para crear la función de Lambda.
  2. Agrega la propiedad Runtime al objeto HostedRotationLambda en AWS::SecretsManager::RotationSchedule HostedRotationLambda.
  3. Vuelve a desplegar la pila de CloudFormation para aplicar los cambios.
    CloudFormation cambia la función de rotación de Lambda de nuevo a Python 3.7.
    Nota: Para Python 3.7, el valor de la clave de versión ejecutable debe ser python3.7.

Información relacionada

Actualización de una función de rotación existente de Python 3.7 a 3.9

OFICIAL DE AWSActualizada hace un año