amazon-web-services - elasticache - aws lambda python mysql
Conéctese al clúster ElastiCache de la función AWS Lambda (4)
A partir de febrero de 2016, AWS permite el uso de funciones lambda para conectarse a Elasticache. Consulte https://aws.amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/ . Aquí hay un enlace sobre cómo funciona: Tutorial: Configuración de una función Lambda para acceder a Amazon ElastiCache en una VPC de Amazon
¿Es posible conectarse desde una función AWS Lambda a un clúster Redis ElastiCache?
No puedo entender si se trata de un problema de configuración o simplemente no es posible.
PD: hice una prueba desde una instancia EC2 y puedo conectarme al nodo Redis. También la función Lambda y el nodo Redis están en la misma región.
ACTUALIZACIÓN (09 de octubre de 2015):
Amazon anunció VPC para las funciones de AWS Lambda. Detalles aquí
Esto significa que ahora podemos acceder a cualquier recurso en AWS detrás del grupo de seguridad VPC, incluidas las máquinas ElastiCache y RDS.
ACTUALIZACIÓN (11 de febrero de 2016): Amazon lanzó VPC para AWS Lambda.
https://aws.amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/
Estaba experimentando el mismo problema. No encontré una solución directa, sino que usé una función Lambda para conectarme a un servidor EC2 usando socket.io, que fue bastante fácil y emití un evento a ese servidor EC2.
Cuando el servidor EC2 recibió el evento, realizó la tarea Redis necesaria (limpieza de la base de datos después de la generación de la miniatura de la imagen).
¡Espero que esto ayude! ¡Si alguien descubre cómo conectarse directamente con ElastiCache de Lambda, aún así me encantaría saberlo!
He intentado conectar lambda a memcached elasticache y funciona bien. Redis también debería ser factible.
Un par de cosas para tener en cuenta:
- Lambda y Elasticache tienen que estar en la misma VPC.
- Cuando lambda se ejecuta en VPC, no tendrá acceso a Internet (por lo que el acceso a las API públicas no funcionará). NATGateway es obligatorio para esto.
La configuración de un Proxy HTTP o iptables no funcionaría por los siguientes motivos:
Las llamadas Redis no son HTTP
y no serán manejadas por proxies HTTP. iptables
(o cualquier reenvío de puertos para ese asunto) o no aceptará un nombre de dominio como destino o será altamente ineficiente debido a la resolución DNS requerida cada vez.
El mejor y más conveniente método es instalar twemproxy
en una máquina EC2 y enrutar sus solicitudes a través de ella. Como beneficio adicional, de repente también has implementado una fantástica estrategia de fragmentación.