Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

415
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda