मैं सर्वर रहित का उपयोग करके लैम्ब्डा में तैनात करने की कोशिश कर रहा हूं। मेरे webpack.config.js में मेरे पास निम्न प्रविष्टि है:

const slsw = require('serverless-webpack')
module.exports = {
  entry: slsw.lib.entries,
  ...
}

मेरे serverless.yml में मैं फ़ंक्शन को निम्न के रूप में घोषित करता हूं:

functions:
  importUsersFromS3:
    handler: handlers.handler

और हैंडलर.जेएस इस तरह दिखता है:

exports.handler = async function (event, context) {
  awaitcaptureAsyncFunc('handleSplitSpreadsheet', () => {
    context.callbackWaitsForEmptyEventLoop = false
    log('event', { event })
    processLargeSpreadsheet(event, context)
  })
}

जब मैं serverless webpack --out dist --stage dev --region us-east-1 चलाता हूं तो मुझे निम्न त्रुटि मिलती है:

Webpack Options Validation Error -----------------------

  WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
   - configuration.entry should be an non-empty object.
     -> Multiple entry bundles are created. The key is the chunk name. The value can be a string or an array.
      at webpack (/src/node_modules/webpack/lib/webpack.js:31:9)
      at ServerlessWebpack.compile (/src/lambda/usersApi/node_modules/serverless-webpack/lib/compile.js:12:22)
  From previous event:
      at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:464:22)
      at PluginManager.spawn (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:484:17)
      at ServerlessWebpack.BbPromise.bind.then.then (/src/lambda/usersApi/node_modules/serverless-webpack/index.js:150:51)
      at runCallback (timers.js:810:20)
      at tryOnImmediate (timers.js:768:5)
      at processImmediate [as _immediateCallback] (timers.js:745:
0
Vallo 5 सितंबर 2019, 21:22

1 उत्तर

सबसे बढ़िया उत्तर

तो मेरी फ़ोल्डर संरचना इस तरह थी

app
├── lambda
|   ├── usersApi
|   |   ├── handlers.js
|   |   ├── serverless.yml
|   |   └── package.json
|   ├── severalServiceFolders
|   └── webpack.config.js
└── package.json

app/lambda/usersApi/package.json में मेरे पास ये निर्भरताएं थीं:

"serverless-plugin-aws-alerts": "1.2.4",
"serverless-plugin-tracing": "^2.0.0",
"serverless-webpack": "^5.3.1"

उन्हें हटाने से त्रुटि दूर हो गई।

रूट package.json में केवल serverless का संदर्भ है "serverless-webpack": "^5.3.1"

1
Vallo 6 सितंबर 2019, 15:59