Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

269
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda