Tag: amazon web services

为什么nodemailer不能在AWS服务器-NodeJS上工作

我使用nodemailer 0.7.1,我可以在我的本地主机上发送电子邮件。 但是当我使用它与AWS服务器,没有得到任何这样的邮件。 请帮帮我。 var smtpTransport = mailer.createTransport("SMTP",{ service: "Gmail", auth: { user: "from@gmail.com", pass: "**************" } }); var mail = { from : "from@gmail.com", to : "to@gmail.com", subject : "dummy subject", html : "dummy message" } smtpTransport.sendMail(mail, function(error, response){ if(error){ console.log(error+"console error"); smtpTransport.close(); } else{ logger.info("Mail sent: " + response.message); smtpTransport.close(); }

AWSfile upload超过5MB – nodejs

我正在使用这个模块上传文件到亚马逊 https://www.npmjs.com/package/streaming-s3 ,如果文件小于或等于5 MB,则工作正常。 我试图上传大小为6 MB的PDF文件。 它显示上传成功,但是当我试图通过aws打开该文件。 它显示无法加载PDF文档 当我检查大小Aws它显示5 MB。 我正在使用以下代码在AWS上进行上传 var options = { concurrentParts: 2, waitTime: 20000, retries: 2, maxPartSize: 10 * 1024 * 1024 }; //call stream function to upload the file to s3 var uploader = new streamingS3(fileReadStream, config.aws.accessKey, config.aws.secretKey, awsHeader, options); //start uploading uploader.begin();// important if callback not provided. // […]

在Node.js中显示检索到的aws实例到HTML页面

我有一个代码从aws中检索实例 var aws = require('aws-sdk'); aws.config.update({ accessKeyId: 'YOUR_ACCESS_KEY', secretAccessKey: 'YOUR_SECRET_KEY', region: 'us-west-2' }); var ec2 = new aws.EC2(); function printStatuses() { ec2.describeInstances({}, function(err, data) { if(err) { console.error(err.toString()); } else { var currentTime = new Date(); console.log(currentTime.toString()); for(var r=0,rlen=data.Reservations.length; r<rlen; r++) { var reservation = data.Reservations[r]; for(var i=0,ilen=reservation.Instances.length; i<ilen; ++i) { var instance = reservation.Instances[i]; […]

Amazon Cloudwatch日志过滤 – JSON语法

我有一个logging错误的AWS Lambda函数。 错误logging如下: console.error(err); 我正在尝试创build一个使用JSON日志过滤语法的Cloudwatchfilter: { $.errorType = "ValidationException" } 我可以看到日志中的错误 2015-11-24T20:26:02.852Z 76800706-2d78-45ed-9068-46ccccafe6af { "errorMessage": "1 validation error detected: Value '[]' at 'xxxxxx' failed to satisfy constraint: Member must have length greater than or equal to 1", "errorType": "ValidationException", "stackTrace": [ …etc… ] } 是否需要某种特殊设置或手动login到CloudWatch以支持JSONfilter语法? 我无法在CloudWatch文档中find任何信息。 文档: http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-logging.html http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html#d0e19372

AWS lambda node.js

我在从node.js.写入的Lambda函数将数据保存到DynamoDB时遇到了问题。 我想问一下,如果我的代码写得不错,因为我将需要每秒钟保存约100个项目,而且我找不到其他方式将数据从Lambda函数保存到DynamoDB,而不是使用put函数。 当我尝试保存约500个项目(500条logging)时,它使任务超时延迟。 如果我保存了大约50个项目,它有时会保存所有的数据,但有时有大约20个项目,有时它不保存任何东西。 我的lambda代码: var AWS = require("aws-sdk"); var dynamodb = new AWS.DynamoDB.DocumentClient(); var numberOfInsertedRows = 0; var actualInsertedRow = 0; var insertItem = function(oneRow, context){ var params = {}; params.TableName = 'MyTable'; params.Item = oneRow; dynamodb.put(params, function(err, data) { if (err) { console.log('ERROR'); console.log(err); context.fail('some error'); } else { actualInsertedRow++; if(actualInsertedRow == numberOfInsertedRows){ […]

aws s3file upload使用aws-sdk nodejs

我试图从用户{angularjs前端}上传文件到aws s3桶,并parsing文件到nodejs api路由,但不断收到错误:“TypeError:无法读取未定义的属性”文件“..我能够从postman(铬扩展)上传文件通过发送文件的请求,但我不知道如何parsing文件从angular度到节点js。 下面是在做什么: // NODEJS代码: router.post('/user/upload', multipartMiddleware, function(req, res){ var file = req.files.file; var body = fs.createReadStream(file.path); var filename = 'post7/media.jpg'; var s3bucket3 = new AWS.S3(); s3bucket3.createBucket({Bucket: 'artistarc-user-post-media'}, function() { var data = {Bucket: 'artistarc-user-post-media', Key: filename, Body: body}; s3bucket3.putObject(data, function(err, data) { if (err) { console.log("Error uploading data: ", err); } else { […]

将node.js应用程序部署到弹性beanstalk(使用快速)

我今天整天都在将应用程序部署到弹性beanstalk中。 我有以下项目结构(单个页面的应用程序构build与反应) dist/ index.html bundle.js package.json app.js 我压缩它,并上传到运行node.js的弹性beanstalk 这里是app.js var express = require('express'); var app = express(); app.use(express.static(__dirname + '/dist')); app.get('/*', function(req, res){ res.sendFile(__dirname + '/dist/index.html'); }); app.listen(8080, function() { console.log('Listening on port: ' + 8080); }); 在当地,这一切都很好,但一些警告警告。

node.js自动调整/负载平衡的任何方法? 与socket.io

我正在尝试部署一个node.js项目,以便它可以使用loadbalancer进行自动缩放。 我尝试了AWS ELB弹性豆茎。 花了很多时间后,ELB不像预期的那样连接socket.io。 从这里我已经search了很多方法来解决这个问题: nginx代理 更改了loadbalancer上的监听器,以允许TCP端口3000(其他端口也取决于论坛/问题,我看着) redis服务器共享不同节点之间的套接字连接。 我无法真正把所有的网站,我试图让这个工作。 但它一直没有奏效。 唯一我可能还没有尝试使用route53 … 所以问题是: 如果有人有一个适当的node.js应用程序与socket.io使用弹性beanstalk(或EC2实例与负载平衡器和自动缩放)工作,有没有办法做到这一点,该方法是什么? 如果有一些链接有一些一步一步的方法,将是可怕的。 提前致谢!

如何在AWS中的NodeJS中编写Mongo Replicas脚本

我有3个服务器都运行Mongo作为副本集,1个主副本和2个副本。 如果一个失败,我的自动比例将杀死实例,并使用用户数据重新启动服务器重新安装软件包。 我怎么能通知主(新的或旧的),实例已经复活,因为它将有一个新的私有IP地址(你不能分配静态私有IP的自动调整/启动configuration) 我似乎无法在Mongoose或Mongo Node Driver的最新版本中find一种方法来告诉主要有一个想要join的新实例。 我可以通过访问Mongo shell并传入来手动执行此操作 rs0:PRIMARY> rs.add("10.23.229.17"); 它将被添加,并且数据将同步。 但是,我怎样才能通过节点驱动程序或Bash脚本rs.add? 更新 我发现这个post非常有用, 我可以使用MongoDb驱动程序从node.js调用rs.initiate()和rs.Add()吗? 基本上, 这是所有数据库命令的列表。 虽然我找不到任何包装好的东西,但使用命令方法很容易: var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://10.23.223.231', function(err, db) { if (err) { console.log('error', err); } else { var adminDb = db.admin(); //use any command from https://goo.gl/0oh6H5 adminDb.command({ replSetGetConfig: 1 }, function(err, info) { if (!eer) { console.log(info); } […]

AWS S3文件在浏览器上传W / Signed URL时上传超时

我一直试图让这个工作2天。 我可以从我的节点服务器获取带有我的存储桶的凭证和文件信息的签名URL,但是当我尝试使用签名的URL上载文件时,我超时了。 这里是一些代码: var AWS_ACCESS_KEY = process.env.AWS_ACCESS_KEY; var AWS_SECRET_KEY = process.env.AWS_SECRET_KEY ; var S3_BUCKET = process.env.S3_BUCKET; exports.getS3Credentials = function(req, res) { aws.config.update({accessKeyId: AWS_ACCESS_KEY, secretAccessKey: AWS_SECRET_KEY}); var s3 = new aws.S3(); // The date is to help avoid overwriting var s3Key = Date.now() + req.query.file_name; var s3_params = { Bucket: S3_BUCKET, Key: s3Key, Expires: 60, ContentType: […]