有没有办法在 aws lambda 函数中 运行 es6 组件,特别是 promises 和 generators
Is there a way to run es6 components, specifically promises and generators, in aws lambda functions
ES6 的使用需要节点 v0.12.3 中的 --harmony
标志。
有没有办法对 aws lambda 函数执行此操作?
AWS Lambda 使用v0.10.36
,但无论如何我认为我们可以这样尝试
var spawn = require("child_process").spawn;
var child = spawn('node', [ "--harmony", "es6.js" ], {
cwd: __dirname
});
简单,使用bluebird
.任何需要使用 promises 的文件,都在范围内获取 bluebird。
var Promise = require('bluebird');
Promise.aPromise()
.then(function () {
console.log('ftw!');
})
.catch(function(err) {
console.log(err, 'do not forget to catch errors. ever!');
})
就生成器而言,我们运气不好。 bluebird
需要最小值 v0.12+
并且在编写 lambda 时仍然停留在 node v0.10.36
可以用babel改造es6/es7兼容节点0。10.x:
http://www.rricard.me/es6/aws/lambda/nodejs/2015/11/29/es6-on-aws-lambda.html
编辑:
还有一个非常酷的 AWS lambda 部署器叫做 Apex with that you can transform and deploy es6/es7 code easily! Examples: https://github.com/apex/apex/tree/master/_examples/babel-webpack
编辑2:
还有一个名为 Gordon 的 AWS lambda 部署器,它还可以帮助您将 lambda 与其他服务集成,例如:
- API网关
- 计划的 CloudWatch 事件 (cron)
- CloudWatch 事件
- Dynamodb 流
- Kinesis 流
- S3
他们也有很多有用的例子
这些答案有点过时了。 AWS 于 2016 年 4 月宣布支持 Node.js 4.3.2 运行时。4.3.2 支持 ES6。它还完全向后兼容。此处提供更多详细信息:
https://aws.amazon.com/blogs/compute/node-js-4-3-2-runtime-now-available-on-lambda/
ES6 的使用需要节点 v0.12.3 中的 --harmony
标志。
有没有办法对 aws lambda 函数执行此操作?
AWS Lambda 使用v0.10.36
,但无论如何我认为我们可以这样尝试
var spawn = require("child_process").spawn;
var child = spawn('node', [ "--harmony", "es6.js" ], {
cwd: __dirname
});
简单,使用bluebird .任何需要使用 promises 的文件,都在范围内获取 bluebird。
var Promise = require('bluebird');
Promise.aPromise()
.then(function () {
console.log('ftw!');
})
.catch(function(err) {
console.log(err, 'do not forget to catch errors. ever!');
})
就生成器而言,我们运气不好。 bluebird
需要最小值 v0.12+
并且在编写 lambda 时仍然停留在 node v0.10.36
可以用babel改造es6/es7兼容节点0。10.x:
http://www.rricard.me/es6/aws/lambda/nodejs/2015/11/29/es6-on-aws-lambda.html
编辑:
还有一个非常酷的 AWS lambda 部署器叫做 Apex with that you can transform and deploy es6/es7 code easily! Examples: https://github.com/apex/apex/tree/master/_examples/babel-webpack
编辑2: 还有一个名为 Gordon 的 AWS lambda 部署器,它还可以帮助您将 lambda 与其他服务集成,例如:
- API网关
- 计划的 CloudWatch 事件 (cron)
- CloudWatch 事件
- Dynamodb 流
- Kinesis 流
- S3
他们也有很多有用的例子
这些答案有点过时了。 AWS 于 2016 年 4 月宣布支持 Node.js 4.3.2 运行时。4.3.2 支持 ES6。它还完全向后兼容。此处提供更多详细信息:
https://aws.amazon.com/blogs/compute/node-js-4-3-2-runtime-now-available-on-lambda/