Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!