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

179
Vistas
AWS Lambda no espera a que se cargue el código en el depósito de S3 en el script de Terraform

Tengo la siguiente configuración de AWS Terraform:

 # S3 bucket for Lambda code upload resource "aws_s3_bucket" "ada-upload" { bucket = "ada-upload" acl = "private" } # uploading zipped lambda code to S3 resource "aws_s3_bucket_object" "lambda_code_upload" { bucket = aws_s3_bucket.ada-upload.bucket key = "dist.zip" source = "dist.zip" etag = filemd5("dist.zip") } # creating lambda function resource "aws_lambda_function" "ada-lambda-function" { function_name = "ada-lambda-function" s3_bucket = aws_s3_bucket.ada-upload.bucket s3_key = "dist.zip" memory_size = 1024 timeout = 900 runtime = "provided" source_code_hash = base64sha256("dist.zip") }

Básicamente, crea un depósito S3, carga el código allí y luego crea un Lambda a partir de ese código. El código es una aplicación .NET 3.1 independiente, trae su propio tiempo de ejecución, por lo que el Zip es bastante grande, lleva algo de tiempo cargarlo. Lambda esperará a que se cree el depósito S3, pero no esperará a que el código termine de cargarse. Entonces, cuando ejecuto el script inicialmente, obtendré S3 key "dist.zip" doesn't exist . Cuando vuelvo a ejecutar el script, dado que el zip ya está allí, la función se creó correctamente.

¿Hay alguna manera de garantizar que Lambda comience a crear solo cuando el código termine de cargarse?

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

0

Descargo de responsabilidad: la respuesta de @ydaetskcoR es correcta y debe aceptarla. Sin embargo, otro enfoque sería modificar la función lambda de la siguiente manera:

 resource "aws_lambda_function" "ada-lambda-function" { function_name = "ada-lambda-function" s3_bucket = aws_s3_bucket.ada-upload.bucket s3_key = "dist.zip" memory_size = 1024 timeout = 900 runtime = "provided" source_code_hash = base64sha256("dist.zip") depends_on = [ aws_s3_bucket_object.lambda_code_upload, ] }

Esto obligará a terraform a esperar primero a que el objeto se cargue en el depósito antes de iniciar la 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