es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede crear el archivo Zip para AWS Lambda Fx en Gitlab a través de Terraform.

Estoy intentando crear una función lambda a través de Terraform para archivos presentes en el repositorio de GitLab, sin embargo, estoy obteniendo un error en el pipeline de CI/CD:

“./lambda_function.zip: no existe tal archivo o directorio”

La carpeta (carpeta src) que contiene el archivo de función lambda en Python es diferente a la carpeta (terraform) que contiene el archivo de Terraform.

Mi proyecto de GitLab se ve así:

NombreDelProyecto

-src
– lambda_function.py

-terraform
– lambda.tf

Y el código de Terraform en lambda.tf es:

data "archivo_archive_file" "lambda" {
tipo = "zip"
archivo_fuente = "../src/lambda_function.py"
ruta_salida = "lambda_function.zip"
}

recurso "aws<em>lambda</em>function" "automation-lambda" 
{nombrefichero=data.archive<em>file.lambda.output</em>path
  descripción       = "Creando lambda"
  nombre<em>función     = "lambda</em>fx"
  rol              = "xxxxxxxxxxxxx"<br>
  controlador           = "lambda<em>function.lambda</em>handler"
  tamaño<em>memoria       =  128
  tiempo_límite           =  300
  código_fuente</em>hash  = data.archivefile.lambda.output_base64sha256
  tiempo_ejecución = "python3.7"
}

Por favor, sugiera cómo se puede resolver el problema.

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está ocurriendo porque el código de Terraform está buscando el archivo lambda_function.py en el directorio equivocado. Para solucionar este problema, puedes actualizar el código de Terraform para hacer referencia al directorio correcto.

    Puedes hacer esto cambiando el parámetro source_file en el bloque de datos a “./src/lambda_function.py” en lugar de “../src/lambda_function.py”. Esto debería hacer referencia al directorio correcto donde se encuentra el archivo lambda_function.py.

    data "archive_file" "lambda" {
      type        = "zip"
      source_file = "./src/lambda_function.py"
      output_path = "lambda_function.zip"
    }
    
    resource "aws_lambda_function" "automation-lambda" {
      filename         = data.archive_file.lambda.output_path
      description      = "Creando lambda"
      function_name    = "lambda_fx"
      role             = "xxxxxxxxxxxxx"
      handler          = "lambda_function.lambda_handler"
      memory_size      = 128
      timeout          = 300
      source_code_hash = data.archive_file.lambda.output_base64sha256
      runtime          = "python3.7"
    }
    

    Después de actualizar el código, vuelve a intentar ejecutar el pipeline y debería crear la función lambda sin errores.

Comments are closed.