Articles of 亚马逊 EC2

节点JS – 将数据从Busboystream式传输到AWS S3

我想通过ec2上传一个文件到s3。 我的第一个方法是 – 将文件完全上传到ec2,然后将该file upload到s3。 这种方法并不好,因为从ec2到s3的传输时间浪费时间。 目前我正尝试使用busboy上传stream来上传s3stream,以便上传到ec2,然后ec3到s3将同时完成,因为s3 “upload”方法支持stream上传Body。 这是我的代码 – router.post('/s3StreamUpload', function(req, res, next) { var busboy = new Busboy({headers: req.headers}); busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { console.log('Before Upload: ' + new Date()); console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' […]

如何防止MongoDB副本集查询主要?

读操作只: 有没有办法有一个MongoDB的副本集,但为了在连接到的盒子上的MongoDB实例,是被查询的MongoDB? AWS负载平衡器后面有三个EC2实例。 在每个EC2实例上运行MongoDB,这是副本集的一部分。 我在nodeJS上有特定的端点,并按照如下方式连接到副本集 mongodb.MongoClient.connect('mongodb://1.1.1.1,2.2.2.2,3.3.3.3.', function (err, db) { if (err) { complete('{}'); } else { 我希望将查询的负载均匀地分布在我的MongoDB副本集的所有三个实例上,而不是默认地将所有查询路由到定义了我的主要MongoDB的EC2实例,因为这破坏了我的负载平衡器的点(这是平衡所有三个实例的查询负载)。 我的理解是,当连接到MongoDB副本集时,除非主实例closures,否则始终select主实例,因此每个辅助实例的目的只是作为备份。 在我的例子中,有些人会称之为HOT,COLD,COLD。 因为有两个实例永远不会被使用。 我希望有平均分配查询负载的原因,所以我的设置可以是WARM,WARM,WARM。 在将来当用户数量增加时,为了保持查询性能最佳,我可以在负载均衡器后面添加更多的EC2实例,以提高查询性能。 并且当数据增长的时候,这样一个单一的实例太慢了,不能及时返回数据,也就是当我将每个实例分割成其他的EC2实例的时候。 注意:我想每个EC2实例的源代码都是一样的。 我正在使用git,我想要轻松地将源代码推送到我的副本集中的每个实例。

Github后接收挂钩Nodejs

我正在尝试在Nodejs中创build一个post-receive hook来更新我的服务器,当我的Github repo被更新时。 我之前在php中做过这个。 我现在正在使用Nodejs,我不确定应该如何实现。 我已经看过这篇关于在ec2实例上设置nodejs的博文。 它说: Create a post-recieve hook that will copy over new code after it's been pushed to the repository $ cat > hooks/post-receive #!/bin/sh GIT_WORK_TREE=/home/ubuntu/www export GIT_WORK_TREE git checkout -f $ chmod +x hooks/post-receive 我不确定上面的代码在做什么以及如何实现。 任何想法的最佳方式呢? 我正在运行基本的32位Amazon Linux EC2实例。

使用html-pdf创buildPDF文件不能在我的部署服务器中工作?

我正在使用html-pdf npm模块创build一个pdf文件,在我的本地环境(mac,windows)中一切工作正常。 但是当我们在我们的amazon ec2服务器上部署相同的代码时,html-pdf的create()不能创build文件,也不会给我任何错误。 我几乎尝试了所有可能的方式,通过exception处理,绝对path等,他们都没有工作。 任何人都可以帮助我这个请。 我的代码是 function generatePdf(content, options, callback) { var fileName = new Date().getTime() + Math.random() + '.pdf'; pdf.create(content, options).toFile('../uploads/' + fileName, function(error, response) { if (error) { callback(error); } else { callback({ fileName: fileName, filePath: response.filename }); } }); } 这里的错误是{},响应是{}

Javascript:添加数字而没有总和?

我基本上是想在JavaScript中获得一个date的小时,分​​钟和秒钟,像这样读取:'123456'。 我正在用下面的代码做这个: var date; date = new Date(); var time = date.getUTCHours() + date.getUTCMinutes() + date.getUTCSeconds(); 唯一的问题是,当我把它们加在一起,我总是得到的总和,不是像我想要的6个数字的好线。 有什么build议么?

我需要对在Google应用引擎上运行的node.js应用进行任何设置吗?

这里的交易,我想使用Google App Engine,因为它的易用性和可扩展性非常重要,由于谷歌的可扩展性,我决定尝试一下Amazon Web Service,这需要花费相当多的时间来学习和部署。 但是在Google App引擎上使用node.js我有一些疑问。 例如 1)我是否需要在每个node.js服务器上手动进行群集,或者App引擎会自行完成这项工作? (提高每个服务器的性能) const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { // Workers […]

如何包含Node.js的Amazon EC2库?

我试图运行一个简单的node.js脚本来描述一个实例,但我得到: module.js:340 错误:找不到模块'aws-lib' 我将所有的EC2 node.js库文件放在与脚本相同的目录中,但是如何包含它们? var aws = require("aws-lib"); ec2 = aws.createEC2Client(*redacted*, *redacted*); ec2.call("DescribeInstances", {}, function(err, result) { console.log(JSON.stringify(result)); });

在同一端口ec2中运行多节点应用程序

我来自java背景,我开始使用节点js,现在我爱它。 我已经阅读了其他类似于我的问题,即时通讯发布之前的线程。 我有3个不同的节点应用程序(应用程序1,应用程序2,应用程序3)通常,如果它在Java中我将在tomcat中部署三个应用程序,并可以像localhost:8080 / app1,localhost:8080 / app2等本地访问它们。方法在节点js。 我已经读了这个线程并且在全局安装了express,并且用这个代码创build了一个名为master.js的脚本 var express = require('express'); var app = express(); app .use('/ app1',require('./app1/server.js').app).use('/ app2',require('./app2/server.js').app).listen( 8080); 但即时通讯 TypeError:无法读取未定义的属性“句柄” 由于即时通讯新节点,即时通讯不知道这个过程是复杂的,如设置代理等在这个线程中提到的 基本上即时通讯寻找部署我所有的应用程序在同一端口,并访问他们像本地主机:8080 / app1,localhost:8080 / app2 我需要nginx和代理来实现这个吗? 另外在EC2实例中,我可以通过进入app1文件夹并input节点server.js来运行我的节点应用程序,以便应用程序将在端口8080中列出,但是当我按Ctrl c做其他任务时,它终止了应用程序。

Chrome:缓慢'初始连接'到EC2

我有一个Linux EC2实例和一个nodejs程序。 我发送POST请求到节点程序,大约一半的时间需要很长的时间才能到达,大约20-30秒。 其余的时间很好。 这似乎完全是随机的。 它不只是经过长时间的闲置,因为这些挂起有时会连续多次出现。 在没有这个问题之前,我已经在Windows EC2上运行了这个精确的节点程序。 我检查了Chrome中的networking事件,发现“初始连接”是永远的: 什么可能导致这个? 编辑我应该包括,我实际上是发送POST请求到一个AWS负载平衡器,它只在一个Linux EC2实例的前面。

使用ec2创build存储在s3上的图像的缩略图,并在完成时与导轨进行通信的优雅方法?

好吧,快速总结一下我的设置和我想完成的事情: 我有一个轨道2.3.5服务器运行我的网站。 我在我的网站上有一个Flash应用程序,用户可以直接将图像上传到s3。 上传完成后,会通知Rails。 在图像完成上传到S3和轨道被通知的地步,我想轨道发送一些post到位于EC2的东西创build两个缩略图(110×110和600×600)。 当缩略图创build并传输到S3,我想要任何进程的EC2发回一个职位的轨道,以通知缩略图创build完成,并在S3上。 什么是完成这个最好的方法? 我非常简短地看过刀等工具,但对于使用ec2或类似的服务,我并不熟悉。 谢谢