【问题标题】:How do you bundle aws-sdk-js into a Serverless Framework optimized package?如何将 aws-sdk-js 捆绑到无服务器框架优化包中?
【发布时间】:2015-12-18 21:44:15
【问题描述】:
由于how the SDK is loaded,AWS SDK for node.js 无法通过browserify 运行
我想包含更新版本的 AWS SDK for node,然后包含在 lambda 中,但我还想优化(通过 browserify)我的 lambda node.js 代码。
我该如何解决这个问题?
【问题讨论】:
标签:
javascript
node.js
amazon-web-services
aws-lambda
serverless-framework
【解决方案1】:
JAWS AWS Module system(又名 awsm)通过 awsm.json 元数据文件中指定如何打包 lambda 代码的属性来实现此功能。
特别是在 awsm.json 规范的 lambda configuration options 部分中定义的 lambda.package.optimize.exclude 和 lambda.package.optimize.includePaths。
exclude 属性指定应该从优化过程中排除的节点模块(在幕后它只是使用browserify exclude)。在exclude 属性中,您只需指定['aws-sdk']。然后,您必须告诉 JAWS 在 zip 中包含 aws-sdk,方法是将其路径放入 includePaths。
includePaths 属性是相对于back 目录的路径列表,这些路径在部署之前按原样拉入到 zip 文件中。
有关完整示例,请参阅awsm sample