Creé una VPC 10.5.0.0/16 con 2 subredes ( 10.5.1.0/24 , 10.5.4.0/24 ).
Creé un grupo de seguridad de seguridad:
Reglas de entrada:
Type Protocol Port range Source Description - optional All traffic All All 0.0.0.0/0 allowing traffic from same security group All traffic All All ::/0 allowing traffic from same security groupReglas de salida:
Type Protocol Port range Source Description - optional All traffic All All 0.0.0.0/0 allowing traffic from same security group All traffic All All ::/0 allowing traffic from same security groupAhora creé 2 funciones de Lambda con el rol de IAM adecuado (que contiene la política de invocación). Estas 2 funciones Lambda están en la misma VPC, subredes y grupos de seguridad.
Caso 1:
Caso 2:
Creo que me estoy perdiendo algo, pero no puedo resolverlo. ¿Alguna sugerencia?
creo que me estoy perdiendo algo pero no puedo resolverlo
Desafortunadamente, la única forma de invocar lambda es a través de un punto final de servicio público de lambda . Dado que la función lambda en una VPC no tiene acceso a Internet ni IP pública, no puede invocar una función lambda desde otra en VPC, sin acceso a Internet. De documentos :
Conectar una función a una subred pública no le otorga acceso a Internet ni una dirección IP pública .
Lamentablemente, el hecho de que estén en la misma VPC o incluso en la misma subred es irrelevante.
Para corregir el problema, la función de invocación debe tener acceso a Internet, ya que el servicio lambda no tiene un punto final de interfaz de VPC . Esto se puede lograr colocándolo en una subred privada y utilizando una puerta de enlace/instancia NAT con tablas de rutas configuradas correctamente para proporcionar el acceso.
Las Lambda dentro de la VPC sin una puerta de enlace NAT no tienen acceso a Internet. La invocación de la función lambda requiere que la persona que llama pueda conectarse a las API de AWS. Esto generalmente significa que la persona que llama necesita tener acceso a Internet. Si bien las excepciones son los servicios que admiten puntos de enlace de la VPC, en este caso, la persona que llama dentro de la VPC puede conectarse a las API del servicio de forma privada. Lamentablemente, lambda no es uno de los servicios que admite puntos de enlace de la VPC.
En cuanto a los Grupos de Seguridad...
Las llamadas realizadas para invocar una función de AWS Lambda se realizan al servicio de AWS Lambda, que vive en Internet.
Si Lambda-1 invoca a Lambda-2, no es necesario que estén en la misma VPC y no es necesario que sean accesibles entre sí a través de un grupo de seguridad.
De hecho, la configuración normal del grupo de seguridad para los grupos de seguridad en las funciones de AWS Lambda es:
Supongamos que tiene una función de AWS Lambda que llama a una base de datos de Amazon RDS. La configuración sería:
Lambda-SG ) sin reglas de entrada, reglas de salida predeterminadas (Todo el tráfico)RDS-SG ) que permite todas las conexiones entrantes desde Lambda-SG y las reglas de salida predeterminadas (Todo el tráfico) Esto significa que la función Lambda puede comunicarse con la base de datos de RDS (ya que RDS-SG hace referencia específicamente a Lambda-SG ), pero no se permitiría que nadie más acceda a la base de datos de RDS.