Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
¿Cómo asigna una VPC y un grupo de seguridad a un Lambda en AWS CDK?

Tengo una pila de CDK de AWS con una función lambda que debe insertarse en una base de datos RDS. Cuando se implementa la pila, la función lambda no puede acceder a la base de datos y genera un error: getaddrinfo ENOTFOUND [punto final de RDS definido por mí]. Después de agregar manualmente la VPC, las subredes y el grupo de seguridad en el que se encuentra la base de datos de RDS, la función lambda funciona correctamente.

¿Cómo se define el grupo de VPC, subredes y seguridad en AWS CDK, preferiblemente en TypeScript? En la medida en que hay documentación, probé:

 const vpc = ec2.Vpc.fromLookup(this, "VPC", { vpcName: "myVPC" }); const securityGroup = ec2.SecurityGroup.fromSecurityGroupId( this, "SG", "sg-XXXXX" ); const subnet1a = ec2.PrivateSubnet.fromSubnetAttributes(this, "SUBNET1A", { subnetId: "eu-central-1a" }); const myLambda = new lambda.Function(this, "myLambda", { runtime: lambda.Runtime.NODEJS_12_X, code: lambda.Code.fromAsset("lambda"), handler: "myLambda.handler", description: "myLambda", environment: { DB_HOST: "XXXX", DB_USER: "XXXX", DB_PASSWORD: "XXXX", DB_NAME: "XXXX" }, vpc: vpc, vpcSubnets: [subnet1a], securityGroups: [securityGroup] });

Al ejecutar cdk deployment Esto da un error de AWS CDK: "No es posible colocar funciones de Lambda en una subred pública El subproceso salió con el error 1"

Cualquier ayuda es bienvenida.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si desea implementar una función Lambda en una VPC, debe implementarla en una subred privada (una que tenga subnetType: SubnetType.PRIVATE ) o una subred aislada (una que tenga subnetType: SubnetType.ISOLATED ).

El que elija depende de si la función Lambda necesita o no acceso a Internet saliente. Si es así, utilice PRIVADO; de lo contrario, utilice AISLADO.

Para llegar a una instancia de RDS en la misma VPC, la función de Lambda debe colocarse en un grupo de seguridad que tenga acceso entrante en el número de puerto correspondiente al grupo de seguridad de la instancia de RDS.

Ejemplo de VPC aquí y Lambda aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay un ejemplo simple, espero que ayude:

 //get VPC Info form AWS account, FYI we are not rebuilding we are referencing const DefaultVpc = Vpc.fromVpcAttributes(this, 'vpcdev', { vpcId:'vpc-d0e0000b0', availabilityZones: core.Fn.getAzs(), privateSubnetIds: 'subnet-00a0de00', publicSubnetIds: 'subnet-00a0de00' }); const YourService = new lambda.Function(this, 'LambdaName', { code: lambda.Code.fromAsset("lambda"), handler: 'handlers.your_handler', role: lambdaExecutionRole, securityGroup: lambdaSecurityGroup, vpc: DefaultVpc, runtime: lambda.Runtime.PYTHON_3_7, timeout: Duration.minutes(2), });
over 4 years ago · Santiago Trujillo Denunciar

0

Su código para configurar un lambda con vpc está bien. Su 'subnet1a' es una subred pública y se recomienda no definir ningún servicio de back-end en las subredes públicas. Documentación de AWS para la configuración de lambda y vpc Otro enlace para referencia

Elija subredes privadas o aisladas para lambda.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda