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.

¿Por qué obtengo el error “El tamaño descomprimido del código es mayor que el tamaño máximo permitido de 272629760” solo para algunos objetivos de implementación?

Como parte de un AWS CodePipeline en una acción de AWS CodeBuild, despliego recursos creados con el Framework Serverless a una etapa de “UAT” (prueba de aceptación del usuario).
El pipeline se ejecuta en su propia cuenta de herramientas de AWS, primero desplegando en una cuenta separada de “UAT”, y luego desplegando en una cuenta separada de “Producción”.

El primer despliegue a “UAT” se completa correctamente, mientras que el despliegue siguiente a “Producción” falla con el error …

Serverless Error ----------------------------------------
Ocurrió un error: <some name="">LambdaFunction - El controlador de recursos devolvió el mensaje: "El tamaño descomprimido del código es mayor que el tamaño máximo permitido de 272629760. (Servicio: Lambda, Código de estado: 400, ID de solicitud: <some request="" id="">, ID de solicitud extendida: null)" (Token de solicitud: <some request="" token="">, Código de error del controlador: InvalidRequest).

Obtener Soporte --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

Información sobre su entorno -------------------------------------------
     Sistema operativo:          Linux
     Versión de Node:              14.17.2
     Versión del Framework:         2.68.0 (local)
     Versión del complemento:            5.5.1
     Versión del SDK:               4.3.0
     Versión de los componentes:        3.18.1

Esto comenzó a ocurrir una vez que introduje el uso de una Capa de Lambda privada. El tamaño total de todos los archivos parece ser mucho menor que el tamaño máximo permitido.

Esta pregunta no se trata tanto del error en sí (ya existe una pregunta similar en enlace).
Me pregunto más bien por qué el comportamiento es inconsistente, variando según los objetivos de despliegue. Porque los límites para el tamaño del paquete de la Función Lambda (incluido el uso de Capas de Lambda) deberían ser los mismos para todos los entornos.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Q: ¿Por qué el comportamiento es inconsistente al implementar en las cuentas de “UAT” y “Producción” en un AWS CodePipeline utilizando Serverless Framework y Lambda Layers?

    El AWS CodePipeline se ejecuta en su propia cuenta AWS de herramientas y despliega recursos creados con Serverless Framework en las cuentas de “UAT” y “Producción”. La primera implementación en “UAT” se completa correctamente, mientras que la implementación posterior en “Producción” falla con un error relacionado con el límite de tamaño del paquete de la función Lambda. Este error ocurrió cuando se introdujo una capa Lambda privada, a pesar de que el tamaño total de todos los archivos parece ser menor al tamaño máximo permitido.

    La pregunta no se trata del error real, sino más bien de por qué el comportamiento es inconsistente entre los dos destinos de implementación. Los límites para el tamaño del paquete de la función Lambda, incluido el uso de Lambda Layers, deberían ser los mismos para todos los entornos.

    Es posible que podría haber diferencias en los roles IAM o los permisos otorgados a la acción AWS CodeBuild para las cuentas de “UAT” y “Producción”. Una posibilidad es que el rol IAM para “UAT” tenga más permisos que el rol IAM para “Producción”, lo que podría provocar que la implementación en “UAT” tenga éxito pero la implementación en “Producción” falle.

    Otra posibilidad es que haya diferencias en las versiones o dependencias de las capas Lambda utilizadas entre los dos entornos. Las capas Lambda podrían estar almacenadas en regiones diferentes o tener permisos diferentes, lo que causaría que la implementación en “Producción” falle.

    Para solucionar este problema, se recomienda revisar los roles IAM y los permisos de la acción AWS CodeBuild, así como las versiones y dependencias de las capas Lambda utilizadas en cada entorno. Además, puede ser útil revisar las plantillas de CloudFormation generadas por Serverless Framework para asegurarse de que sean idénticas entre las cuentas de “UAT” y “Producción”.

Comments are closed.