我尝试使用通过webpack生成的处理程序部署aws lambda函数。这是最终的webpack文件。为了便于理解,我删除了大部分标准webpack代码。
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ }
/************************************************************************/
/******/ ({
/***/ "./storesHandler.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports.get = function (event, context, callback) {
var response = {
statusCode: 200,
body: JSON.stringify({
message: 'Go Serverless v1.0! Your function executed successfully!',
input: event
})
};
callback(null, response);
// Use this code if you don't use the http event with the LAMBDA-PROXY integration
// callback(null, { message: 'Go Serverless v1.0! Your function executed successfully!', event });
};
/***/ }),
/***/ 0:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__("./storesHandler.js");
/***/ })
/******/ });
但是,当我尝试执行在AWS上部署的功能时,我收到以下错误。该文件的名称是storesHandler.js
{
"errorMessage": "Handler 'get' missing on module 'storesHandler'"
}
答案 0 :(得分:3)
我解决了这个问题。为了防止其他人遇到同样的问题,修复程序位于webpack.config.js文件中。在输出部分,我不得不提到commonjs和libraryTarget。
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '../build'),
filename: 'storesHandler.js'
}