【问题标题】:serverless deploy Error: Error: Cannot find module './lib/core'无服务器部署错误:错误:找不到模块“./lib/core”
【发布时间】:2020-10-21 17:08:51
【问题描述】:

我在执行 serverless deploy 命令时遇到错误,我找不到任何有关此错误来源的文档。它可以在我的本地机器上运行,这意味着我必须安装其他东西才能让它工作,但我不知道是什么。

我正在尝试在 AWS 上构建。

我的 serverless.yaml:

service: suqinn-python
app: suquinn-be
plugins:
  - '@serverless/enterprise-plugin'
  - serverless-pseudo-parameters
  - serverless-custom-packaging-plugin
  - serverless-python-requirements




package:
  exclude:
    - 'node_modules/**'

provider:
  name: aws
  runtime: python3.8
  profile: ${opt:profile,"AlexisLefebvre"}
  region: ${opt:region,"eu-west-2"}
  stage: ${opt:stage,"dev"}
  environment:
    STAGE: ${self:provider.stage}
    REGION: ${self:provider.region}
    DYNAMODB_SECURITIES_TABLE: ${self:custom.DynamoDBSecuritiesTableName}
  iamRoleStatements:
    - Effect: 'Allow'
      Action:
        - dynamodb:PutItem
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:UpdateItem
        - dynamodb:DeleteItem
      Resource: 
        - arn:aws:dynamodb:${self:provider.region}:#{AWS::AccountId}:table/${self:custom.DynamoDBTradesTableName}

    - Effect: 'Allow'
      Action:
        - s3:GetObject
      Resource: 
        - arn:aws:s3:::*

functions:
  create:
    handler: handler.create
    environment:
      STAGE: ${self:provider.stage}
    events:
      - http:
          path: form
          method: post
          cors: true
  get:
    handler: handler.get
    environment:
      STAGE: ${self:provider.stage}
    events:
      - http:
          path: form
          method: get
          cors: true
  delete:
    handler: handler.delete
    environment:
      STAGE: ${self:provider.stage}
    events:
      - http:
          path: form
          method: delete
          cors: true
  
  

custom:
  client: "kkk"
  DynamoDBTradesTableName: ${self:custom.client}-trades-${self:provider.stage}
  s3reportsName: ${self:custom.client}-reports-${self:provider.stage}

还有我的 buildspec.yaml:

version: 0.2
#comment
phases:
  install:
    runtime-versions:
      nodejs: 10
      python: 3.8
    commands:
      - pip install pyjwt
      - pip install pytz
      - pip install pandas_market_calendars
      - npm install serverless -g
      - npm install serverless-pseudo-parameters
      - npm install serverless-custom-packaging-plugin
      - npm install serverless-python-requirements
      - npm install @serverless/enterprise-plugin

  build:
    commands:

      - serverless deploy

【问题讨论】:

    标签: python yaml serverless-framework


    【解决方案1】:

    只需添加到您的serverless.yml

    package: # Optional deployment packaging configuration
      include: # Specify the directories and files which should be included in the deployment package
        - ./**
      exclude: # Specify the directories and files which should be excluded in the deployment package
        - 'node_modules/**'
    

    更好的做法是只包含与特定 lambda 函数相关的文件夹,而不是所有项目文件

    取自: https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/

    【讨论】:

    • 感谢 Dori 的回答。我已将 serverless.yaml 更改为 package: include: # 指定部署包中应包含的目录和文件 - '' exclude: - 'node_modules/*' 但我还是一样错误。看起来自定义打包模块需要我在我的节点模块中安装的东西,而我的构建规范中没有重新安装。我可以通过删除自定义包装来解决这个问题,但是我的 zip 文件从 500kb 变成了 75MB,这不是很好。
    • @AlexisLefebvre 你能告诉我们 import / require 语句吗?您在使用一些 webpack 或其他捆绑工具吗?
    【解决方案2】:

    这似乎来自 custom-packaging-plugin。删除插件解决了这个问题,但是你的 package.zip 的大小会爆炸,这也是一个问题。将 serverless.yaml 修改为:

    service: suqinn-python
    app: suquinn-be
    plugins:
      - '@serverless/enterprise-plugin'
      - serverless-pseudo-parameters
      - serverless-custom-packaging-plugin
      - serverless-python-requirements
    
    
    
    
    package:
      include:
          - '*'
      exclude:
          - 'node_modules/**'
          

    不幸的是仍然产生同样的错误:

    错误 ---------------------------------------------- ----

    错误:找不到模块“./lib/core” 在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) 在 Function.Module._load (internal/modules/cjs/loader.js:562:25) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在需要(内部/模块/cjs/helpers.js:25:18) 在对象。 (/codebuild/output/src448056649/src/node_modules/archiver/index.js:8:16) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在需要(内部/模块/cjs/helpers.js:25:18) 在对象。 (/codebuild/output/src448056649/src/node_modules/serverless-custom-packaging-plugin/lib/index.js:5:18) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在需要(内部/模块/cjs/helpers.js:25:18) 在 requireServicePlugin (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:27:12) 在 pluginsObject.modules.filter.map.name (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:144:20) 在 Array.map() 在 PluginManager.resolveServicePlugins (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:141:8) 在 PluginManager.loadAllPlugins (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:127:40) 在 service.load.then (/usr/local/lib/node_modules/serverless/lib/Serverless.js:88:39) 在 tryCatcher (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23) 在 Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:547:31) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 Promise._fulfill (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:617:21) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 Promise._fulfill (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在 Promise._resolveCallback (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:466:57) 在 Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:559:17) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 Promise._fulfill (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在 PromiseArray._resolve (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:127:19) 在 PromiseArray._promiseFulfilled (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:145:14) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:609:26) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 Promise._fulfill (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在 Promise._resolveCallback (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:466:57) 在 Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:559:17) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 Promise._fulfill (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在 PropertiesPromiseArray.PromiseArray._resolve (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:127:19) 在 PropertiesPromiseArray._promiseFulfilled (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/props.js:78:14) 在 Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:609:26) 在 Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10) 在 Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在 _drainQueueStep (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:93:12) 在 _drainQueue (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9) 在 Async._drainQueues (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:102:5) 在 Immediate.Async.drainQueues [as _onImmediate] (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:15:14) 在 runCallback (timers.js:705:18) 在 tryOnImmediate (timers.js:676:5) 在 processImmediate (timers.js:658:5)

    【讨论】:

      猜你喜欢
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2020-12-17
      • 2020-06-27
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多