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

158
Vistas
Obtener atributo de Terrafrom cdk implementado lambda

Estoy usando Terraform CDK para implementar una función lambda y estoy tratando de configurar un disparador usando notificaciones s3. Soy algo nuevo en CDK, así que no estoy seguro de dónde pueden estar yendo mal las cosas aquí.

Al leer este ejemplo y también en base a lo que se hace con el CDK normal, pensé que para acceder a la función arn (para agregarla a la configuración de notificación del depósito), sería my_function.arn , pero muestra la siguiente cadena {TfToken[TOKEN.XXX]} .

Me parece que podría obtener el arn en algún lugar con este valor, pero no pude averiguar dónde.

Pensé en dividirlo en dos pilas, pero necesitaba que tanto lambda como su activador de notificación se implementaran juntos.

el codigo es

 #!/usr/bin/env python from constructs import Construct from cdktf import App, TerraformStack, TerraformOutput from imports.aws import AwsProvider from imports.aws.lambdafunction import LambdaFunction from imports.aws.s3 import S3BucketNotification, S3BucketNotificationLambdaFunction import os class My_Stack(TerraformStack): def __init__(self, scope: Construct, ns: str): super().__init__(scope, ns) AwsProvider(self, 'Aws', region='my-region') my_lambda_function = LambdaFunction( self, id='id', function_name='cdk-deployment-test', role='my-role', memory_size=128, runtime='python3.8', timeout=900, handler="lambda_handler", filename=os.path.join(os.getcwd(), 'deployment_package/package.zip') ) function_to_be_triggered = S3BucketNotificationLambdaFunction( lambda_function_arn= my_lambda_function.arn, events = ["s3:ObjectCreate:*"], filter_prefix = "path" ) payment_recognition_input = S3BucketNotification( self, id='s3-bucket-notification', bucket = 'my-bucket', lambda_function=[function_to_be_triggered] ) app = App() My_Stack(app, "cdktf-poc") app.synth()
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esta es la forma correcta de hacer referencia a la propiedad ARN del recurso terraform, los {TfToken[TOKEN.XXX]} se resuelven en la sintaxis del lenguaje Terraform en la salida del sintetizador. Consulte la documentación de CDK para Terraform aquí que analiza los tokens:

https://github.com/hashicorp/terraform-cdk/blob/main/docs/working-with-cdk-for-terraform/tokens.md#tokens

Por ejemplo, este código CDKTF:

 const vpc = new Vpc(this, "my-vpc", { name: vpcName, }); new Eks(this, "EksModule", { clusterName: "my-kubernetes-cluster", vpcId: vpc.vpcIdOutput, });

finalmente genera (usando token) esta terraformación:

 { "module": { "helloterraEksModule5DDB67AE": { "cluster_name": "my-kubernetes-cluster", "vpc_id": "${module.helloterraMyVpc62D94C17.vpc_id}" } } }

De modo que esa referencia y el enlace de dependencia aún existan en el momento del plan/aplicación de Terraform.

Para su caso de uso específico, pruebe lo siguiente, utilizando el proveedor de aws preconstruido y S3BucketNotificationLambdaFunction para estructurar la configuración de la función lambda:

 from cdktf_cdktf_provider_aws.s3 import S3BucketNotificationLambdaFunction, S3BucketNotification from cdktf_cdktf_provider_aws.lambda_function import LambdaFunction my_lambda_function = LambdaFunction( self, id='id', function_name='cdk-deployment-test', role='my-role', memory_size=128, runtime='python3.8', timeout=900, handler="lambda_handler", filename=os.path.join(os.getcwd(), 'deployment_package/package.zip') ) S3BucketNotification( self, id="s3-bucket-notification", bucket="my-bucket", lambda_function=[ S3BucketNotificationLambdaFunction( lambda_function_arn=my_lambda_function.arn, events=["s3:ObjectCreate"], filter_prefix="path" ) ] )
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