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

412
Vistas
El archivo cargado debe ser un zip no vacío (Servicio: AWSLambdaInternal; Código de estado: 400; Código de error: InvalidParameterValueException;

Tengo una aplicación Express/Node.js simple con los siguientes archivos sin subdirectorios (aparte de .serverless y node_modules).

  • .sin servidor
  • node_modules
  • aplicación.js
  • lambda.js
  • paquete.json
  • paquete-bloqueo.json
  • sin servidor.yml

AWS arroja este error: se produjo un error: ApiLambdaFunction: el archivo cargado debe ser un zip no vacío (Servicio: AWSLambdaInternal; Código de estado: 400; Código de error: InvalidParameterValueException; ID de solicitud: 5779d4c3-beaa-4bc2-b525-c1e89a82635a; Proxy: nulo).

El archivo .zip no estaba vacío cuando accedí al depósito S3 al que se carga el código. Pude ver la carpeta .zip con todo su contenido allí. Sin embargo, la operación de serverless deploy falla desde AWS CLI, lo que genera la excepción anterior. Cualquier ayuda para concentrarse en el problema sería muy apreciada. ¡Gracias!

A continuación se muestra el código.

  • aplicación.js
 const express = require("express") const app = express(); app.use(express.json()); app.use(express.urlencoded({extended: false})); app.get("/", (req, res) => { res.status(200).send("Root endpoint") }) app.post("/postReq", (req, res) => { res.status(200).send(req.body); }) app.listen(8080, () => console.log("App started."))
  • lambda.js
 'use strict' const awsServerlessExpress = require('aws-serverless-express') const app = require('./app') const server = awsServerlessExpress.createServer(app) exports.handler = (event, context) => { awsServerlessExpress.proxy(server, event, context) }
  • paquete.json
 { "name": "my-lambda", "version": "1.0.0", "description": "Lambda Function", "main": "app.js", "scripts": { "start": "node app.js", "deploy": "serverless deploy" }, "author": "Aseem Savio", "license": "ISC", "dependencies": { "aws-serverless-express": "^3.4.0", "express": "^4.17.1" }, "devDependencies": { "serverless": "^2.21.1" } }
  • sin servidor.yml
 service: my-lambda-function provider: name: aws runtime: nodejs10.x memorySize: 512 timeout: 15 stage: production region: ap-south-1 functions: api: handler: lambda.handler events: - http: ANY {proxy+} - http: ANY /

Los siguientes son los registros de la consola.

 aseemsavio@aseem-ubuntu:~/projects/Node.js/my-lambda$ npm run deploy > my-lambda@1.0.0 deploy > serverless deploy Serverless: Configuration warning at 'functions.api.events[0].http': value 'ANY {proxy+}' does not satisfy pattern /^(?:\*|(GET|POST|PUT|PATCH|OPTIONS|HEAD|DELETE|ANY) (\/\S*))$/i Serverless: Serverless: Learn more about configuration validation here: http://slss.io/configuration-validation Serverless: Serverless: Deprecation warning: Starting with next major version, default value of provider.lambdaHashingVersion will be equal to "20201221" More Info: https://www.serverless.com/framework/docs/deprecations/#LAMBDA_HASHING_VERSION_V2 Serverless: Deprecation warning: Starting with next major version, API Gateway naming will be changed from "{stage}-{service}" to "{service}-{stage}". Set "provider.apiGateway.shouldStartNameWithService" to "true" to adapt to the new behavior now. More Info: https://www.serverless.com/framework/docs/deprecations/#AWS_API_GATEWAY_NAME_STARTING_WITH_SERVICE Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service my-lambda.zip file to S3 (917.12 KB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ................ Serverless: Operation failed! Serverless: View the full error output: https://ap-south-1.console.aws.amazon.com/cloudformation/home?region=ap-south-1#/stack/detail?stackId=arn%3Aaws%3Acloudformation%3Aap-south-1%3A617584887932%3Astack%2Fmy-lambda-production%2F6d6f6ed0-607d-11eb-a05e-02c8952955f8 Serverless Error --------------------------------------- An error occurred: ApiLambdaFunction - Uploaded file must be a non-empty zip (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: 5779d4c3-beaa-4bc2-b525-c1e89a82635a; Proxy: null). Get Support -------------------------------------------- Docs: docs.serverless.com Bugs: github.com/serverless/serverless/issues Issues: forum.serverless.com Your Environment Information --------------------------- Operating System: linux Node Version: 15.6.0 Framework Version: 2.21.1 (local) Plugin Version: 4.4.2 SDK Version: 2.3.2 Components Version: 3.5.1 npm ERR! code 1 npm ERR! path /home/aseemsavio/projects/Node.js/my-lambda npm ERR! command failed npm ERR! command sh -c serverless deploy npm ERR! A complete log of this run can be found in: npm ERR! /home/aseemsavio/.npm/_logs/2021-01-27T09_38_04_670Z-debug.log aseemsavio@aseem-ubuntu:~/projects/Node.js/my-lambda$

Los registros completos del archivo de depuración son los siguientes:

 0 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'deploy' ] 1 info using npm@7.4.0 2 info using node@v15.6.0 3 timing config:load:defaults Completed in 1ms 4 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 0ms 5 timing config:load:builtin Completed in 0ms 6 timing config:load:cli Completed in 1ms 7 timing config:load:env Completed in 1ms 8 timing config:load:file:/home/aseemsavio/projects/Node.js/my-lambda/.npmrc Completed in 0ms 9 timing config:load:project Completed in 0ms 10 timing config:load:file:/home/aseemsavio/.npmrc Completed in 0ms 11 timing config:load:user Completed in 0ms 12 timing config:load:file:/usr/local/etc/npmrc Completed in 1ms 13 timing config:load:global Completed in 1ms 14 timing config:load:cafile Completed in 0ms 15 timing config:load:validate Completed in 0ms 16 timing config:load:setUserAgent Completed in 0ms 17 timing config:load:setEnvs Completed in 1ms 18 timing config:load Completed in 5ms 19 verbose npm-session 39866318e36c1c25 20 timing npm:load Completed in 11ms 21 timing command:run-script Completed in 49470ms 22 verbose stack Error: command failed 22 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/index.js:64:27) 22 verbose stack at ChildProcess.emit (node:events:379:20) 22 verbose stack at maybeClose (node:internal/child_process:1065:16) 22 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:296:5) 23 verbose pkgid my-lambda@1.0.0 24 verbose cwd /home/aseemsavio/projects/Node.js/my-lambda 25 verbose Linux 5.8.0-38-generic 26 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deploy" 27 verbose node v15.6.0 28 verbose npm v7.4.0 29 error code 1 30 error path /home/aseemsavio/projects/Node.js/my-lambda 31 error command failed 32 error command sh -c serverless deploy 33 verbose exit 1
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Este problema se debe a la dependencia de archiverjs/node-archiver utilizada dentro de serverless cuando se ejecuta en la versión de nodo 15.6.0 o superior actualmente.

Como muchos propusieron aquí, degradar la versión del nodo a la versión LTS actual v14.15.4 o v15.5.1 debería funcionar bien como MX D mencionó en su comentario .

Muchas personas experimentan este problema al crear sus paquetes dentro de una canalización de CI/CD, porque están utilizando una imagen de ventana acoplable de nodo. Por ejemplo en GitLab como:

 default: image: node:alpine

En lugar de node:alpine, el error también debe ocurrir con node:latest, etc. Las líneas deben cambiarse a una versión de trabajo específica descrita anteriormente de la siguiente manera:

 default: image: node:15.5.1
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente actualice serverless a la versión más reciente: https://www.serverless.com/framework/docs/getting-started#upgrade

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