Tag: amazon web services

Lambda AWS不调用节点mysqlcallback

我试图通过AWS的简单通知服务vi和Lambda来处理从亚马逊简单电子邮件服务发送的反弹。 我正在运行以下脚本: var aws = require('aws-sdk'); var mysql = require('mysql'); Processor = {}; Processor.initializeConnection = function() { console.log('Connecting to database'); Processor.connection = mysql.createConnection({ host : 'MYHOST', user : 'MYUSER', password : 'PASSWORD', database : 'DATABASE' }); console.log('Connection configured'); Processor.connection.connect(function(err) { console.log('****'); console.log(err); if (err != null) { console.log('Could not connect to database'); return false; } […]

DynamoDB应用程序体系结构

我们使用DynamoDB和node.js和Express来创buildREST API。 为了简化操作,我们已经开始在后端使用Dynamo了。 我们已经开始使用AWS实验室的DynamoDB Document SDK来简化使用,并使得使用JSON文档变得容易。 要实例化一个客户端使用,我们需要执行以下操作: AWS = require('aws-sdk'); Doc = require("dynamodb-doc"); var Dynamodb = new AWS.DynamoDB(); var DocClient = new Doc.DynamoDB(Dynamodb); 我的问题是,为了确保数据的完整性,最后两步需要在哪里进行? 我担心一个对象正在等待Dynamo中发生的事情,被另一个进程接pipe,并且交换数据,导致不正确的数据被发送回客户端,或者不正确的数据被写入数据库。 我们有三个部分给我们的REST API。 我们有主要的server.js文件,它启动express和HTTP服务器,并为它分配资源,设置日志logging等。我们执行前两个步骤创build到Dynamo的连接,创buildAWS和Doc需求那点。 这些variables在应用程序中是全球性的。 然后,根据通过API执行的路由,调用一个控制器来parsing来自其他调用的input。 然后调用一个模型文件,与Dynamo进行交互,然后将响应提供给控制器,控制器会将返回包与任何错误一起格式化,然后将其发送到客户端。 该模型只是一组基本覆盖应用程序的相同区域的方法。 例如,我们将拥有一个用户模型,该模型涵盖了应用程序中的login和帐户创build等内容。 我已经完成了上面两个步骤来创build两个地方的发电机对象。 一个,我只是把他们放在一个地方,在每个模型文件的顶部。 我不会在下面的方法中重新使用它们,我只是简单地使用它们。 我们还在方法中实例化了它们,当我们准备对Dynamo进行调用时,使它们完全局限于方法,并在需要时将它们传递给第二个函数。 第二种方法一直让我感到最安全的做法。 然而,在负载testing下,我遇到了一些情况,我们似乎已经不堪重负了传出的networking连接,并且我开始收到错误,告诉我DynamoDB端点在我运行的区域不可用。我相信这是从进行连接所需的额外呼叫。 所以,问题是,创build这些模型文件的本地对象,安全,还是需要在使用它们的方法本地创build? 任何想法将不胜感激。

如何重置AWS Elastic Beanstalk上的凭证

在执行eb init之后,我意外地input了错误的aws-access-id和密钥,在完成教程时将Express Application部署到Elastic Beanstalk 现在我收到以下错误“错误:”my-misyped-key“在授权标题中不是有效的密钥=值对(缺less等号)…” 什么是最好的方式来重置我的凭据,以便我可以运行“eb init”

如何将缓冲区保存到S3 Bucket中

我的要求是将图像的Buffer保存到S3存储桶中。 我正在使用gm节点模块将image转换为buffer 。 但是我的主要问题是我需要将缓冲区直接发送到S3存储区而不保存在任何本地文件中。 我目前的代码如下: var fs = require('fs'), gm = require('gm').subClass({ imageMagick: true }); gm(/*buffer value*/).resize(9000) .toBuffer('jpg', function (err, buffer){ fs.writeFile(filePath, buffer, function (err) { if (err) throw err; console.log('It\'s saved!'); }); }); 我的要求如下: var fs = require('fs'), gm = require('gm').subClass({ imageMagick: true }); gm(/*buffer value*/).resize(9000) .toBuffer('jpg', function (err, buffer){ //S3 Upload To be […]

Node.js脚本工作一次,然后失败

我需要一个Node.js脚本,它执行以下操作: 1 – 将图像添加到指定的S3存储桶时触发。 2 – 创build该图像的缩略图(360×203像素)。 3 – 将该缩略图的副本保存在单独的S3文件夹内。 4 – 使用“FILENAME-X”命名约定,将缩略图上传到指定的FTP服务器,六(6)次。 代码的工作起初和预期一样。 示例事件拉取图像。 创build一个thumnail。 保存到另一个S3存储桶。 然后将其上传到FTP服务器。 问题:一次对testing文件HappyFace.jpg有效,但后续testing失败。 另外,我试着用不同的文件做,但不成功。 另外:如果我可以得到一些帮助编写一个循环来命名上传的不同文件,将非常感激。 我通常使用PHP编写代码,所以它可能比我希望写的更长。 注:我删除了我的FTP凭据隐私。 问题代码片段: function upload(contentType, data, next) { // Upload test file to FTP server c.append(data, 'testing.jpg', function(err) { console.log("CONNECTION SUCCESS!"); if (err) throw err; c.end(); }); // Connect to ftp c.connect({ host: "", […]

为什么descisionTask不从AWS-SWF服务(SWF)接收任何任务?

我正在使用Nodejs作为后端。 我试过这个 npm包来创build一个简单的工作stream程(AMAZON-SWF)。 该软件包有一个示例文件夹,其中包含我放在我的节点项目中的文件,以便我了解它是如何工作的。 问题是Decider没有收到来自SWF服务器的任何任务。 因为我的工作stream程从未运行。 是否有一些configuration问题。 请指出我做了什么错误。 以下是快速参考的代码。 代码唯一的变化是版本号的变化和在域名中的变化。 否则,它是代码相同的代码,你可以在这里find。 以下是决定代码。 var swf = require('./index'); var myDecider = new swf.Decider({ "domain": "test-domain", "taskList": {"name": "my-workflow-tasklist"}, "identity": "Decider-01", "maximumPageSize": 100, "reverseOrder": false // IMPORTANT: must replay events in the right order, ie. from the start }); myDecider.on('decisionTask', function (decisionTask) { console.log("Got a new decision task […]

AWS DynamoDB node.js放入请求不会将数据放入Dynamo表中

我正在使用以下代码将数据提取到DynamoDB。 从Kinesis读取的代码 var AWS = require("aws-sdk"), DOC = require("dynamodb-doc"); docClient = new DOC.DynamoDB(); function upsert(result) { var info = new Info(result); console.log('Within upsert :', info.AcctNo); docClient.putItem({ TableName: "test_lamda_dynamo_table", Item: info }, function(err, data) { if (err) { console.error('error', err); context.done('error', err); } else { console.log('success', data); context.done('success', event.Records); } }); } 我无法在cloudwatch日志中看到error handling程序sysouts,也无法看到DynamoDB中的数据。 下面是来自cloudwatch的示例日志 "Within […]

从节点中的mongodb中排除kerberos依赖

我有一个具有mongodb作为依赖项的节点应用程序。 据我所知,mongodb依赖于kerberos的东西,但据我所知,我不需要它。 这会导致问题,因为当我尝试将应用程序部署到aws beanstalk时,由于系统依赖关系,所有地方都会出现窒息和barf。 是否有可能在我的package.json排除该依赖项? > kerberos@0.0.17 install /tmp/deployment/application/node_modules/mongodb/node_modules/kerberos > (node-gyp rebuild) || (exit 0) make: Entering directory `/tmp/deployment/application/node_modules/mongodb/node_modules/kerberos/build' CXX(target) Release/obj.target/kerberos/lib/kerberos.o In file included from ../lib/kerberos.cc:1:0: ../lib/kerberos.h:5:27: fatal error: gssapi/gssapi.h: No such file or directory #include <gssapi/gssapi.h> ^ compilation terminated. make: *** [Release/obj.target/kerberos/lib/kerberos.o] Error 1 make: Leaving directory `/tmp/deployment/application/node_modules/mongodb/node_modules/kerberos/build' gyp ERR! build error gyp ERR! […]

AWS,NodeJS – 将应用程序连接到另一个EC2实例上的Mongodb

我试图将运行在一个EC2实例上的应用程序连接到在另一个EC2实例上运行的MongoDB。 我很确定问题出在安全设置,但我不太清楚如何处理。 首先,我的应用程序的实例位于ELB后面的自动调整组中。 实例和ELB的入站安全设置允许从任何地方访问端口80,以及来自其自身安全组的所有stream量。 运行Mongo的EC2实例能够在该实例的安全组接受来自任何地方的所有入站通信的情况下进行连接。 我试过的任何其他configuration都会导致应用程序说它无法与远程地址build立连接。 我已经设置了规则来接受来自我拥有的所有安全组的入站stream量,但只有当我允许来自任何地方的所有stream量时,它似乎才起作用。 此外,我的数据库实例设置了一个弹性ip。 我应该在ELB背后有这个实例吗? 所以我的问题是这样的: 1)如何安全地连接到运行mongo的EC2实例? 2)在体系结构方面,以这种方式运行我的数据库是否有意义,还是应该在负载平衡器后面加上这一点? 这个问题比我想象的要多得多,所以任何帮助,将不胜感激。 注意 我还在bind_ip=0.0.0.0设置了bind_ip=0.0.0.0

AWS Elastic Beanstalk:我是否必须使用完整的“/ node_modules”和“/ bower_components”来部署我的应用程序,并编译sass和其他依赖项?

我不明白AWS Elastic Beanstalk在Node.js应用程序中的工作方式。 Node.js开发的最佳实践是,不必将/node_modules或/bower_components或其他第三方包推送到版本控制系统(例如GitHub),而只需将package.json 。 所有这些/node_modules必须在.gitignore 。 然后任何人都可以执行npm install或bower install并安装所有依赖项。 sass也是一样 – 编译生产环境。 好的,但AWS Elastic Beanstalk呢? 我如何创build我的Node.js应用程序的源代码包? 我必须提交FULL /node_modules和/bower_components ,然后用它们做一个.zip包吗? 但是我的HEAD提交没有/node_modules ,因为/node_modules在.gitignore 。 所以在.zip bundle中不会有依赖: git archive –format=zip HEAD > app.zip 或者,在我将app.zip部署到AWS Elastic Beanstalk之后,是否可以select安装所有依赖项? 或者AWS Elastic Beanstalk在我上传了我的app.zip包之后立刻自行npm install在某个地方?