Articles of amazon web services

从NodeJS AWS Lambda函数查询MySQL数据库

我在使用AWS Lambda函数查询我的MySQL数据库(从AWS远程托pipe)时遇到问题。 这是我的代码,除了我需要的其余的Lambda函数(这被称为Alexa技能)的部分: var mysql = require('mysql'); var connection = mysql.createConnection({ host : '<myserver>', user : '<myusername>', password : '<mypw>', database : '<mydatabase>' }); connection.connect(function(err){ if(!err) { console.log("Database is connected … nn"); } else { console.log("Error connecting database … nn"); } }); connection.query("INSERT INTO Users (user_id) VALUES ('TESTNAME')"); connection.end(); 从我的命令提示符下使用节点运行它时,这工作得很好: node index.js 我在index.js目录下使用通过npm安装的“mysql”模块并将其压缩并上传到我的Lambda函数中。 再次,这在我的开发机器上工作,但是在testing我的Lambda函数时没有提供任何指示符,为什么它根本不影响我的数据库。 我的问题扩展到Alexa和Lambda,就像正确使用mysql […]

组合多个node.js Web应用程序

我试图找出完成这个最好的方法; 基本上我有大约6个网站我必须上网,但目前他们将有零stream量,以节省资金,他们需要部署在同一台服务器(理想情况下,我们将使用AWS的Elastic BeanStalk)。 有没有一种方法可以像平常一样编写每个Web应用程序(以便将来可以轻松地将它们转移到专用服务器上),但是有一个app.js入口点可以根据URL适当地加载节点应用程序? 显然这不是很理想,但我想到了一些方法来做到这一点,但我希望尽可能不要做傻事,以便稍后可以轻松地移动网站。

aws-sdk node.js s3 putObject从请求体

我正在尝试使用AWS-SDK将PDF保存到S3中。 我通过POST(应用程序/ PDF)的正文获取PDF。 使用fs.writeFile将文件保存到本地HD时,文件看起来OK。 但是当上传到s3文件已损坏(单个白页pdf) 任何帮助或暗示将不胜感激! var data = body // body from a POST request. var fileName = "test.pdf"; fs.writeFile(fileName, data, {encoding : "binary"}, function(err, data) { console.log('saved'); // File is OK! }); s3.putObject({ Bucket: "bucketName", Key: fileName, Body: data }, function(err, data) { console.log('uploaded') // File uploads incorrectly. }); 编辑: 它可以工作,如果我写,然后读取文件,然后上传。 fs.writeFile(fileName, data, […]

AWS S3 JavaScript SDK getSignedUrl仅返回基本path

我有一些非常简单的代码来生成一个S3的URL。 我从SDK获取的URL只有S3的基本path。 它不包含任何其他内容。 为什么发生这种情况? var AWS = require('aws-sdk'); var s3 = new AWS.S3(); console.log(s3.getSignedUrl('getObject', { Bucket: 'test', Key: 'test' })); // Returns "https://s3.amazonaws.com/" Node.js v0.12.0,AWS SDK 2.1.15或2.1.17,Windows 7 64位,

不可能在EC2上安装npm的bcrypt

在Amazon EC2实例上的Ubuntu Server 14.04上,执行npm install时出错。 它没有安装bcrypt( "bcrypt": "^0.8.1"在我的package.json )。 这是我的错误: > bcrypt@0.8.1 install /home/ubuntu/app/node_modules/bcrypt > node-gyp rebuild child_process: customFds option is deprecated, use stdio instead. make: Entering directory `/home/ubuntu/app/node_modules/bcrypt/build' CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o make: g++: Command not found make: *** [Release/obj.target/bcrypt_lib/src/blowfish.o] Error 127 make: Leaving directory `/home/ubuntu/app/node_modules/bcrypt/build' gyp ERR! build error gyp ERR! stack Error: `make` failed […]

使用JavaScript API设置S3对象到期(用于删除)

我正在使用适用于Amazon AWS S3的Node.js JavaScript API,并且希望将对象设置为在创build对象后指定的天数过期。 也就是说,如果我创build并上传了一个新对象,我希望它从现在起100天左右自动删除它自己。 是否可以设置每个对象的删除到期? 文件表明这可能是可能的: Amazon S3提供了一个到期操作,您可以在生命周期configuration中指定过期操作以使对象过期。 … 当一个对象到达其生命周期结束时,Amazon S3会将其排队并将其移除,并将其asynchronous移除。 到期date与Amazon S3删除对象的date之间可能存在延迟。 与过期的对象相关联的存储时间不收取费用。 但是,似乎我必须在桶configuration中设置此过期,而不是在上传/创build它们时按对象。 JavaScript SDK文档指出,我可以在创build对象时设置Expires参数,但是当S3为后续GET请求返回对象时,这似乎是针对Expires HTTP标头的。 有没有办法在创build对象时设置对象的到期date? s3.putObject({ Bucket: config.s3.bucketName, Key: s3Key, Body: objBuffer, ACL: 'public-read', ContentType: 'image/jpeg', StorageClass: 'REDUCED_REDUNDANCY', // Some option here for setting expiration/deletion date? }, function () { console.log(arguments); });

AWS Lambda copyObject“在完成请求之前退出进程”

我试图复制上传到S3存储桶的文件来创build时间戳备份。 (“活”文件将被定期覆盖以保持永久链接) AWScopyObject,但是,似乎并没有执行。 我收到以下错误 { "errorMessage": "Process exited before completing request" } 导致此错误的代码如下所示; console.log('Loading function'); var AWS = require('aws-sdk'); var s3 = new AWS.S3(); exports.handler = function(event, context) { var srcBucket = event.Records[0].s3.bucket.name; var srcKey = event.Records[0].s3.object.key; var dstKey = srcBucket+'/backup/'+ Date.now() + '-' +srcKey; console.log(srcKey); console.log(dstKey); var copyParams = { Bucket: srcBucket, CopySource : […]

使用Node轮询Amazon SQS队列的最有效方法

我的问题很简短,但我觉得很有趣: 我有一个来自Amazon SQS服务的队列,我每秒轮询一次队列。 当有消息处理消息并处理后,返回轮询队列。 有没有更好的办法吗?,某种触发器? 或者你认为哪种方法最好,为什么。 谢谢!

更新Elastic Beanstalk中的Nodejs版本

我们在生产节点版本时遇到了一些问题,所以我们将package.json所需的版本从0.10.0为6.2.2. 。 "engines": { "node": ">= 6.2.2" } 但是,在Elastic Beanstalk中,当创build新实例时,它们将以节点版本0.10.0 。 我们如何更新Elastic Beanstalk中的版本,以便创build的新实例具有放置在package.json的所需版本? 非常感谢你。

使用aws iot从aws lambda发布mqtt消息到主题

我需要使用aws iot通过mqtt协议发布aws lambda数据。 我用node.js代码创build了一个lambda函数。 喜欢这个 exports.handler = (event, context, callback) => { var awsIot = require('aws-iot-device-sdk'); var device = awsIot.device({ keyPath: 'samplepath/test.pem.key', certPath: 'samplepath/test.crt', caPath: 'samplepath', clientId: 'sampleId', region: 'us-east-1' }); device .on('connect', function () { console.log('connected'); device.publish('test_topic', JSON.stringify({ "test_name": "hello", "test_value": 1001 })); console.log('published successfully'); callback(null, 'item added'); }); } 我在订阅者上收到了mqtt消息。 但lambda产生这样的错误消息 Task timed […]