¿Hay alguna forma de hacer que un AWS lambda reciba una conexión TCP entrante (por ejemplo, de otro lambda)?
EDITAR: No estoy preguntando si es posible llamar a una lambda desde otra.
No, no directamente. Solo puede establecer una conexión con Lambda a través de la puerta de enlace API a través de HTTP/HTTPS. Su función lambda recibirá un punto final HTTP, pero la dirección IP a la que se resuelve sigue siendo la puerta de enlace API y no su función lambda. Invocar una función de AWS Lambda mediante una solicitud http
¿Por qué?
Sospecho que es porque cada función lambda comparte su dirección IP con muchas otras funciones lambda ubicadas en la máquina virtual. Se ejecutan en contenedores sobre instancias EC2, por lo que tendría varios clientes ejecutándose en la misma dirección IP. No he visto documentación que detalle lo que realmente está haciendo AWS, pero supongo que cada contenedor se ejecuta en un puerto diferente, por lo que para conectarse directamente a su contenedor necesitaría conocer el puerto "actual" y no solo la dirección IP. Además de eso, no hay razón para dar direcciones IP públicas a los contenedores. Probablemente todos viven en una subred privada.
Si desea más confirmación, puede explorar la consola de AWS lambda y no encontrar otras propiedades de lambda que no sean el punto de enlace HTTP para la puerta de enlace API. Y si busca en Google los documentos SDK, no encontrará ninguna función de recuperación de direcciones IP.
No.
Estoy seguro de que AWS prácticamente lo bloqueó por razones obvias.
Además, cada contenedor solo vive mientras algo lo sigue invocando y muere después de unos cinco minutos sin uso.