Tag: services

如何使用AWS JavaScript SDK(dynamoDB)处理UnprocessedItems?

我正在尝试使用AWS Lambda函数处理来自SendGrid的事件。 据我所知,事件将是一个具有可变数量的JSON对象的数组,每个JSON对象代表一个给定的事件。 我想使用batchWriteItem将这些事件写入DynamoDB,并循环这个过程,直到我没有返回任何UnprocessedItems。 但是,我陷入了一个无限循环。 这是我现在的代码: console.log('Loading function'); var aws = require('aws-sdk'); var dynamo = new aws.DynamoDB(); params = {}; exports.handler = function(sg_event, context) { var items = []; for(var i = 0; i < sg_event.length; i++) { var obj = sg_event[i]; var request = { PutRequest: { Item: { email: { S: obj.email }, […]

如何启用Node.js应用程序连续部署到Amazon EC2?

我是一个node.js开发人员。 我之前使用过Heroku和Joyent的no.de平台。 对于这两个平台,部署过去很简单 git push heroku master ( Heroku ) git push joyent master ( Joyent's node) 上面的命令用来做魔术。 他们使我能够将代码从本地机器推送到云服务器,部署它并自动重启服务器。 现在我正计划使用Amazon AWS作为其更加可configuration的function以满足我的需求。 如何在Amazon EC2上设置类似的连续部署? 我正在使用Ubuntu AMI。 有没有什么工具可以帮助我实现这个目标? 如果有任何资源/教程可以帮助我 – 请让我知道。 谢谢 !

在Amazon ECS上的Docker中运行Node API的最佳方式是什么?

随着Docker和Amazon ECS等调度和编排服务的出现,我试图确定部署Node API的最佳方式。 抛开Docker和ECS,我想通过创build一个主进程和多个工作负载处理器,利用Node集群库在文档中build议的asynchronous错误的情况下正常处理崩溃节点应用程序。 集群方法的好处之一就是为每个可用的CPU创build一个工作者处理器。 但是这在docker世界是否有意义呢? 在单个docker容器中运行多个节点进程是否有意义,这个容器将被缩放到ECS上的EC2实例集群中? 如果没有Node集群方法,我将失去正常处理错误的能力,所以我认为至less应该为每个docker容器运行一个master和一个worker进程。 我仍然对ECS的任务定义中要定义的CPU数量感到困惑。 ECS文档中提到了每个CPU有1024个单元的容器实例; 但这与EC2计算单元不是一回事,是吗? 就这样说,我需要select适当数量的vCPU的EC2实例types来实现这个权利? 据我所知,实现最佳configuration可能需要一定程度的基准testing我的特定节点API应用程序,但是如果能够更好地了解从哪里开始,那将是非常棒的。 也许有一些学习/研究我需要做? 任何指引我的path或build议,将不胜感激! 编辑:回顾我的具体问题: 在Docker容器中运行一个主/从集群来实现优雅的崩溃是否合理? 使用与Cluster文档中描述的几乎相同的代码是否有意义,通过require('os').cpus().length来'缩放'到可用的require('os').cpus().length ? 在ECS任务定义的文档中,Amazon对于cpus设置的含义是什么意思,一个container instance has 1024 units per CPU ? 那么这个环境会是一个好的起点呢? 基于上述情况,针对旨在服务Node API的ECS集群,实例types有什么好的起点? 那么可用的vCPU如何影响以前的问题呢?

是否有node.js的AWS AMI?

是否保留了针对node.js的AWS EC2 AMI?

使用适用于Node.js的AWS开发工具包将二进制file upload到S3

更新:为了将来的参考,亚马逊现在已经更新了在提问时那里的文档。 根据@Loren Segal的评论如下: 我们已在最新的预览版本中更正了文档,以正确logging此参数。 抱歉关于混音! 我正在试用Node.Js的AWS开发工具包预览版,并且希望使用putObject将压缩的tar包上传到S3。 根据文档 , Body参数应该是… 正文 – (Base64编码数据) …因此,我正在尝试下面的代码… var AWS = require('aws-sdk'), fs = require('fs'); // For dev purposes only AWS.config.update({ accessKeyId: 'key', secretAccessKey: 'secret' }); // Read in the file, convert it to base64, store to S3 fs.readFile('myarchive.tgz', function (err, data) { if (err) { throw err; } var […]