首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建AWS CloudFormation堆栈

无法创建AWS CloudFormation堆栈
EN

Stack Overflow用户
提问于 2022-04-18 15:48:03
回答 1查看 462关注 0票数 0

我正在将项目的Node版本更改为14,并尝试将其自定义部署到我的暂存环境中进行测试。但是,在将版本更改为14之后,运行serverless deploy --stage <some-name>时会出现以下错误:

资源处理程序返回的消息:“上载的文件必须是非空压缩(服务: Lambda,状态代码: 400,请求ID: 94cd 74175-94cd-4fd9-81ec-4a27042a685e)”(RequestToken: 54f90861-af13-989c-be06-cdb17f4b5f39,HandlerErrorCode: InvalidRequest)

以下是控制台日志:-

代码语言:javascript
复制
Running "serverless" from node_modules
Serverless: Deprecation warning: bin/serverless is deprecated, use bin/serverless.js instead
            More Info: https://www.serverless.com/framework/docs/deprecations/#BIN_SERVERLESS
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service get-payment-methods.zip file to S3 (102.27 MB)...
Serverless: Validating template...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
.............................................
Serverless: Stack create finished...
 
  Serverless Error ---------------------------------------
 
  Stack with id <stack-name> does not exist
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              16.13.1
     Framework Version:         1.83.3 (local)
     Plugin Version:            3.8.4
     SDK Version:               2.3.2
     Components Version:        2.34.9

我看了一下用Uploaded file must be a non-empty zip (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException;给出的解决方案。我试着升级无服务器版本。我还尝试了Node版本14.19.1和14.15.4。但我总是犯同样的错误。

这是我的package.json文件:-

代码语言:javascript
复制
{
  "name": "GetPaymentMethods",
  "description": "GetPaymentMethods WebService",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "@sentry/node": "5.12.0",
    "aws-serverless-express": "3.1.3",
    "cors": "^2.8.4",
    "dotenv": "8.0.0",
    "express": "4.16.2",
    "axios": "0.18.0",
    "node": "14.19.1"
  },
  "devDependencies": {
    "mocha": "5.0.0",
    "nyc": "^15.1.0",
    "moxios": "^0.4.0",
    "serverless-domain-manager": "^2.6.0",
    "serverless-sentry": "^1.2.0",
    "sinon": "^6.1.4",
    "supertest": "3.0.0",
    "unit.js": "2.0.0",
    "serverless-newrelic-lambda-layers": "^0.1.16",
    "eslint": "6.8.0",
    "serverless": "^1.32.0",
    "serverless-offline": "^3.31.0"
  },
  "scripts": {
    "pretest": "echo 'Running eslint' && eslint .",
    "test": "nyc mocha --recursive tests"
  },
  "nyc": {
    "reporter": [
      "lcov",
      "text-summary"
    ]
  }
}

这是我的serverless.yml文件:-

代码语言:javascript
复制
service: get-payment-methods
    
plugins:
  # - serverless-newrelic-lambda-layers
  # - serverless-domain-manager
  # - serverless-sentry
  - serverless-offline


provider:
  name: aws
  runtime: nodejs14.x
  region: eu-west-1
  memorySize: 128
  timeout: 30
  endpointType: REGIONAL
  deploymentBucket:
    name: np-serverless-deploy-bucket-npr
  environment:
    CONFIG: ${file(./serverless.env.yml):${opt:stage}.CONFIG} 
   
functions:
  get-payment-methods:
    handler: index.handler
    events:
      - http:
          path: /
          method: get
          cors: true
      - http:
          path: /v1/test
          method: get
          cors: true
      - http:
          path: /v1
          method: get
          cors: true         

我不能使用最新的节点v16,因为AWS和CodeBuild不支持它。我必须使用v14。请帮帮忙。

如果这重要的话,我的机器上的全球节点版本是16.13.1。

EN

回答 1

Stack Overflow用户

发布于 2022-04-25 07:20:05

因此,为了解决这个问题,我为这个项目和全局项目保留了相同的NodeJS版本。似乎是因为某种原因,而不是本地版本,导致了冲突(查看我在问题中发布的控制台日志)。对我来说,14.17.1和14.17.6版本起了作用,无需升级任何其他软件包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71914020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档