Tag: amazon web services

使用Amazon KMSencryption值,使用带有Lambda的DynamoDB存储/检索(NodeJS)

我有一个将数据写入DynamoDB的Lambda(NodeJS)函数。 有些数据需要encryption。 我使用KMSencryption和存储进行encryption。 当我使用不同的Lambda函数从Dynamo中检索并尝试解密时,出现错误。 如果我encryption,然后解开一个解密,我能够做到这一点,但如果我从数据库中读取encryption的值,它不会解密。 我的encryption/存储代码如下: console.log('Loading event'); var AWS = require('aws-sdk'); var keyId = "arn:aws:kms:us-east-1:5423542542:key/xxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxx"; var tableName = "person"; var dynamoDBConfiguration = { "region": "us-west-2" }; AWS.config.update(dynamoDBConfiguration); var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'}); var kms = new AWS.KMS({region: 'us-east-1'}); var newId = "1234-56789-101112-13141516"; var item = {}; exports.handler = function (event, context) { console.log('ssn'); […]

AWS Lambda中的HTTP请求

我是Lambdas的新手,所以也许还有一些我还没有注意到,但是我写了一个简单的Lambda函数来向外部站点发出HTTP请求。 出于某种原因,无论我使用Node的http还是https模块,我都会得到一个ECONNREFUSED 。 这是我的Lambda: var http = require('http'); exports.handler = function (event, context) { http.get('www.google.com', function (result) { console.log('Success, with: ' + result.statusCode); context.done(null); }).on('error', function (err) { console.log('Error, with: ' + err.message); context.done("Failed"); }); }; 这里是日志输出: START RequestId: request hash 2015-08-04T14:57:56.744Z request hash Error, with: connect ECONNREFUSED 2015-08-04T14:57:56.744Z request hash {"errorMessage":"Failed"} END RequestId: request […]

使用AWS的节点Redis

AWS通过ElastiCache服务支持Redis支持。 我的问题是,我可以使用以下方法连接到来自节点的AWS Elasticache上的Redis: var client = require('redis').createClient(6379, 'elastichache endpoint string', {no_ready_check: true}); 还是必须使用NodeJS AWS SDK? 我意识到我可以在EC2实例上设置自己的Redis服务器,但是我想使用ElastiCache。 这可能吗?

在AWS Lambda上使用nodejs“ref”模块时出现“invalid ELF header”

我刚刚上传了一个包含“ref”( https://www.npmjs.com/package/ref )的AWS Lambda,这是validationiOS Game Center身份validation令牌所必需的( 如何validationGame Center用户来自第三方node.js服务器 )。 不幸的是调用它会导致“无效的ELF头”错误, { "errorMessage": "/var/task/node_modules/ref/build/Release/binding.node: invalid ELF header", "errorType": "Error", "stackTrace": [ "Module.load (module.js:356:32)", "Function.Module._load (module.js:312:12)", "Module.require (module.js:364:17)", "require (module.js:380:17)", "bindings (/var/task/node_modules/ref/node_modules/bindings/bindings.js:76:44)", "Object.<anonymous> (/var/task/node_modules/ref/lib/ref.js:5:47)", "Module._compile (module.js:456:26)", "Object.Module._extensions..js (module.js:474:10)", "Module.load (module.js:356:32)", "Function.Module._load (module.js:312:12)" ] } 这是在运行Yosemite的64位Macbook Pro上开发的,在本地运行代码时没有问题。 谷歌search“无效的ELF标题”一直没有得到相关的结果,我真的不知道该从哪里去。 在node.js区域,我会更好地问这个,还是这是相关的领域,因为这可能是平台的问题?

NodeJS如何从aws s3存储桶下载文件到磁盘?

我的目标: 显示一个对话框,提示用户保存从aws下载的文件。 我的问题: 我目前使用的是awssum-amazon-s3来创build一个下载stream。 然而,我只设法将文件保存到我的服务器或stream到命令行…正如你可以从我的代码看到我的最后一次尝试是尝试手动设置内容处置标题失败。 我不能使用res.download()作为标题已被设置? 我怎样才能达到我的目标? 我的节点代码: app.post('/dls/:dlKey', function(req, res, next){ // download the file via aws s3 here var dlKey = req.param('dlKey'); Dl.findOne({key:dlKey}, function(err, dl){ if (err) return next(err); var files = dl.dlFile; var options = { BucketName : 'xxxx', ObjectName : files, }; s3.GetObject(options, { stream : true }, function(err, data) { […]

如何让Mongo在远程服务器上运行?

当在远程aws服务器(ubuntu)上运行mongo时,在启动mongo实例后,运行mongo实例的最好方法是什么?

parsingstream在Nodejs中的对象

我正在尝试从 Node.Js中的Amazon S3存储获取对象。 当我将它保存到一个文件时 ,这完美的工作。 amazon.getObject = function () { var options = { BucketName : 'mybucket', ObjectName : 'path/to/my.json', ResponseContentType : 'application/json' }; s3.GetObject(options, function(err, data) { var fs = require('fs'); var fd = fs.openSync('helloaa.json', 'w+'); fs.writeSync(fd, data.Body, 0, data.Body.length, 0); fs.closeSync(fd); }); }; 在。 helloaa.json是: { "hello": 1, "world": 3 } 但。 我不想将数据写入磁盘上的文件。 […]

在所有调用都是asynchronous的情况下,如何在lambda中构build连续的AWS服务调用?

我来自java的背景,所以在Lambda所需要的JavaScript惯例上有点新手。 我有一个lambda函数,这意味着要按照特定的顺序执行几个AWS任务,具体取决于前一个任务的结果。 鉴于每个任务都asynchronous报告其结果,我想知道是否正确的方式确保它们都以正确的顺序发生,并且一个操作的结果可用于调用下一个函数。 看起来好像我必须调用前面函数的callback中的每个函数,但是看起来这样会产生某种深层嵌套,并想知道这是否是正确的方法。 举例来说,这些函数需要一个DynamoDB getItem,接着调用SNS来获得一个端点,然后是一个SNS调用来发送消息,然后是DynamoDB写入。 什么是正确的方式来做lambda的JavaScript,占所有的asynchronous性?

自定义AWS ElasticBean NodeJS安装(使用纱线)

是否可以configurationEBS使用yarn package manager而不是NPM来安装我的NodeJS应用程序?

通过AWS SDK创build签名的S3和Cloudfront URL

是否有人成功使用AWS开发工具包生成签名的URL到S3存储桶中的对象,这些存储也可以通过CloudFront? 我正在使用JavaScript AWS SDK ,通过S3链接生成签名的URL非常简单。 我刚刚创build了一个私人存储分区,并使用以下代码来生成URL: var AWS = require('aws-sdk') , s3 = new AWS.S3() , params = {Bucket: 'my-bucket', Key: 'path/to/key', Expiration: 20} s3.getSignedUrl('getObject', params, function (err, url) { console.log('Signed URL: ' + url) }) 这很好,但我也想暴露一个CloudFront的URL给我的用户,所以他们可以得到使用CDN增加的下载速度。 我设置了一个修改存储桶策略以允许访问的CloudFront分配。 但是,这样做后,任何文件可以通过CloudFront URL访问,亚马逊似乎忽略了我的链接签名。 在阅读了更多关于这个之后,我已经看到人们生成一个.pem文件来获得使用CloudFront的签名URL,但是为什么S3不需要? 似乎getSignedUrl方法只是使用AWS Secret Key和AWS Access Key进行签名。 有没有人得到了这样的工作之前? 更新:经过进一步研究,CloudFront似乎处理与S3完全不同的URL签名[link] 。 不过,我还不清楚如何使用Javascript创build签名的CloudFront URL。