我正在尝试打包 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');
};
我应该能够上传并运行bundle.js
在 AWS Lambda 上无需进一步修改。
如何使用现有的 JS 工具实现这一目标?
您可以使用无服务器 https://serverless.com/ with 无服务器 webpack https://github.com/serverless-heaven/serverless-webpack
然后你部署你的包serverless deploy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)