¿Cómo soluciono los errores de tiempo de espera de conexión de Lambda al intentar acceder a una instancia de base de datos de Amazon RDS?

5 minutos de lectura
0

Mi función AWS Lambda recibe errores de tiempo de espera de conexión cuando intenta acceder a una instancia de base de datos de Amazon Relational Database Service (Amazon RDS). ¿Cómo soluciono estos errores?

Resolución

Solucionar errores de tiempo de espera de conexión intermitente y transitorio

Capture los eventos de la función de Lambda y vuelva a intentarlo como parte de la gestión de errores de la función

Para obtener más información, consulte Gestión de errores y reintentos automáticos en AWS Lambda.

Compruebe si hay errores de DNS

Confirme si hay algún error relacionado con el Sistema de nombres de dominio (DNS). Si hay errores de DNS, captúrelos. A continuación, vuelva a intentar la solicitud de DNS mediante un retroceso exponencial. Para obtener más información, consulte Reintentos ante error y retroceso exponencial en AWS.

Nota: Asegúrese de poder resolver los puntos de conexión entrantes y salientes antes de volver a intentar la solicitud de DNS.

Solucionar errores de tiempo de espera de conexión consistentes

Compruebe los registros de Amazon CloudWatch de la función de Lambda

Si aún no lo ha hecho, conceda permisos de registro de CloudWatch a su función de Lambda. A continuación, revise los registros de la función para identificar errores específicos de tiempo de espera de conexión.

Para obtener más información, consulte Supervisión y solución de problemas de aplicaciones de Lambda.

Compruebe la configuración de la VPC

Para bases de datos privadas, realice una de las siguientes acciones, según su caso de uso:

Coloque la función de Lambda en la misma Amazon Virtual Private Cloud (Amazon VPC) que la base de datos.

-o-

Cree una conexión de emparejamiento de VPC entre la Amazon VPC que incluye su función y la Amazon VPC que incluye su base de datos.

Para bases de datos públicas, haga lo siguiente:

(Para las funciones de una Amazon VPC) Dirija el tráfico público a través de una puerta de enlace de traducción de direcciones de red (NAT) o una instancia de NAT. Para obtener más información, consulte ¿Cómo doy acceso a Internet a una función de Lambda que está conectada a una Amazon VPC?

Nota: Si la base de datos es de acceso público y no hay restricciones basadas en la dirección IP en la base de datos, siga las instrucciones del Tutorial: Configuración de una función de Lambda para acceder a Amazon RDS en una Amazon VPC.

Compruebe las reglas del grupo de seguridad

Para bases de datos privadas, haga lo siguiente:

Añada una regla de entrada a su grupo de seguridad de base de datos que permita el tráfico desde el rango CIDR de las subredes o el grupo de seguridad de la VPC.

Para bases de datos públicas, haga lo siguiente:

Añada una regla de entrada a su grupo de seguridad de base de datos que permita el tráfico desde la puerta de enlace de NAT o la instancia de NAT de la VPC.

Actualizar el controlador de funciones de Lambda

Actualice el código de la función de Lambda para que la función abra la conexión a la base de datos fuera del controlador de funciones y no cierre la conexión.

**Nota:**Debido a la forma en que Lambda reutiliza los contenedores, Lambda no reinicializa el código que está fuera de un controlador de funciones cuando se reutiliza el contenedor. Se recomienda crear la conexión que planea reutilizar fuera del controlador para que siga ahí en cada invocación siguiente. Asegúrese de confirmar que hay una conexión válida antes de intentar utilizarla. Si no hay una conexión válida, cree una conexión nueva antes de continuar.

Conéctese mediante una instancia de EC2

A modo de prueba, lance una instancia de Amazon Elastic Compute Cloud (Amazon EC2) con la misma configuración de Amazon VPC que su función de Lambda. A continuación, intente conectarse a la instancia de base de datos de Amazon RDS desde la instancia de EC2.

Si puede conectarse a la base de datos, siga las instrucciones de Solucionar problemas de red en Lambda.

-o-

Si no puede conectarse a la base de datos, siga las instrucciones que se indican en ¿Cómo soluciono los problemas de conexión a mi instancia de base de datos de Amazon RDS?

Utilice Amazon RDS Proxy

Cree un punto de conexión de proxy de Amazon Relational Database Service (Amazon RDS) para su base de datos de RDS a fin de gestionar el tráfico de la base de datos desde su función de Lambda. Para obtener más información, consulte Usar Amazon RDS Proxy con AWS Lambda.

**Nota:**La compatibilidad con el Amazon RDS Proxy para MySQL y PostgreSQL ya está disponible de forma general.


Información relacionada

Configurar el acceso a la base de datos para una función de Lambda

Usar AWS Lambda con Amazon RDS

¿Cómo puedo solucionar problemas de conectividad a una instancia de Amazon RDS que usa una subred pública o privada de una VPC?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años