AWS Lambda的打包代码
我正在尝试打包AWS Lambda的代码。 Lambda有各种限制,例如使用Node 6.10,而没有像AWS EB那样的构建步骤。我也在使用NPM模块,因此需要将它们与AWS Lambda处理程序捆绑在一起。
这是我想做的事情:
- 定义和使用NPM模块(仅限纯JS模块)
- 将所有代码(包括NPM模块)透明化为Node 6.10支持的JS版本
- 将所有NPM模块静态链接到一个大的JS文件中
- 将该单个文件上载到AWS Lambda
例如,假设我有一个NPM模块foo
(node_modules/foo/index.js
):
export default { x: 1 };
我有自己的代码('index.js'):
import foo from 'foo';
export const handler = (event, context, callback) => {
console.log(foo); // Will appear in CloudWatch logs
callback(null, 'OK');
};
输出将是这样的('dist / bundle.js'):
var foo = { x: 1 };
exports.handler = function(event, context, callback) {
console.log(foo);
callback(null, 'OK');
};
我应该能够在AWS Lambda上传和运行bundle.js
而无需进一步修改。
如何使用现有的JS工具实现这一目标?
回答如下:你可以使用serverless和serverless-webpack
然后使用serverless deploy
部署捆绑包