无服务器部署错误:错误:找不到模块'./lib/core'

2024-04-26 09:47:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试图建立在AWS的基础上

my 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

Tags: installselfawsnpmenvironmentcustomproviderdynamodb
2条回答

这似乎是来自自定义打包插件。删除插件可以解决这个问题,但是package.zip的大小会急剧膨胀,这也是一个问题。将serverless.yaml修改为:

&13; 第13部分,;
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/**'
      
和#13;
和#13;

不幸的是,仍然会产生相同的错误:

错误

错误:找不到模块'./lib/core' 位于Function.Module.\u resolveFilename(internal/modules/cjs/loader.js:636:15) at Function.Module._load(内部/modules/cjs/loader.js:562:25) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 反对。(/codebuild/output/src448056649/src/node_modules/archiver/index.js:8:16) at模块编译(内部/modules/cjs/loader.js:778:30) at Object.Module._extensions..js(internal/modules/cjs/loader.js:789:10) at Module.load(内部/modules/cjs/loader.js:653:32) 在tryModuleLoad(内部/modules/cjs/loader.js:593:12) at Function.Module._load(内部/modules/cjs/loader.js:585:3) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 反对。(/codebuild/output/src448056649/src/node_modules/serverless定制打包插件/lib/index.js:5:18) at模块编译(内部/modules/cjs/loader.js:778:30) at Object.Module._extensions..js(internal/modules/cjs/loader.js:789:10) at Module.load(内部/modules/cjs/loader.js:653:32) 在tryModuleLoad(内部/modules/cjs/loader.js:593:12) at Function.Module._load(内部/modules/cjs/loader.js:585:3) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 在requirereserviceplugin(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:27:12) 位于pluginobject.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.\u结算PromiseFromHandler(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:547:31) 在Promise._结算Promise(/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._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise._结算Promise(/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._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise.\u resolveCallback(/usr/local/lib/node\u modules/serverless/node\u 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._结算Promise(/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) 按承诺。_结算建议(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/承诺.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在PromiseArray上解析(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:127:19) 在PromiseArray.实现了PromiseArray(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:145:14) 在Promise._结算Promise(/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._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise.\u resolveCallback(/usr/local/lib/node\u modules/serverless/node\u 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._结算Promise(/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._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在PropertiesPromiseArray.PromiseArray.\u resolve(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:127:19) 在PropertiesPromiseArray.实现了承诺(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/props.js:78:14) 在Promise._结算Promise(/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._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 在drainQueueStep(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/async.js:93:12) at_drainQueue(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9) 在Async.\u drainQueues(/usr/local/lib/node\u modules/serverless/node\u 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) 运行回调时(timers.js:705:18) 在tryOnImmediate(timers.js:676:5) 在processImmediate(timers.js:658:5)

只需添加到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/

相关问题 更多 >