Tag: amazon web services

使用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 […]

SES:在lambda函数中访问电子邮件正文

我对AWS比较陌生,我试图通过Lambda函数处理我的电子邮件。 我已经在node.js中构build了这个: 'use strict'; exports.handler = (event, context, callback) => { var http = require('http'); var data = JSON.stringify(event); var options = { host: 'my.host', port: '80', path: '/my/path', method: 'POST', headers: { 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': data.length } }; var req = http.request(options, function(res) { var msg = ''; res.setEncoding('utf8'); res.on('data', function(chunk) { msg […]

我如何在亚马逊ec2服务器上find我的Nameservers?

最近我有一台Amazon EC2微型服务器来学习如何使用nodejs。 (我不是服务器精明BTW)。 我设法安装了所有东西,并在服务器上运行nodejs并运行它们的示例脚本。 在亚马逊我设置服务器安全组,以允许所有/ icmap – 所有/ tcp – 0 – 65535 / ssh / HTTP / HTTPS所以基本上一切都允许或多或less。 我的问题是如何find我的名称服务器,以便我可以在我已经购买的新域名上使用它们。 如果是这样的话,我可能会完全错误,错过许多步骤。 你知道一个很好的教程如何做到这一点? 感谢和遗憾的一般问题。

如何更新string集(SS)types的Dynamodb中的项目?

我创build了一个String Settypes的属性。 当我创build创build项目和分配typesSS的属性一切正常。 但是,当我尝试更新此属性时,数据types更改为列表(“L”)。 我试试这个: qw = new AWS.DynamoDB.DocumentClient(); var params = { TableName : "myTable", Key: { "id": somekey }, UpdateExpression: "set ssvar= :arrp", ExpressionAttributeValues: { ":arrp": [ "test", "test2" ] } }; qw.update (etc.) 这导致在dynamodb中的数据types的改变,而不是一个string集我得到一个列表: "ssvar": { "L": [ { "S": "test" }, { "S": "test2" } ] } 我已经尝试了下面的所有types的解决scheme,但总是我的数据types被改变。 ExpressionAttributeValues: { ":arrp": […]

在使用节点JS的DynamoDB查询中recursion提取所有项目

这可能是一个比DynamoDB特定问题更多的JS / Async问题 – 我想用Amazon的DynamoDB中的散列键获取表中的所有项目。 表中也有Range键。 我正在使用一个NodeJS库,它是AWS DynamoDB REST API的包装器。 – 节点 – DynamoDB DynamoDB只会为每个查询返回1 MB的结果。 要提取结果提醒,它包括lastEvaluatedKey 。 我们可以在另一个查询中包含这个来获取另一个1 MB值的结果,等等… 我在编写recursionasynchronous函数时遇到了困难,它应该按顺序打到服务,直到我可以得到所有结果为止。 (表格永远不会超过10 MB用于我的用例,没有失控查询的机会) 一些伪代码的插图: ddb.query('products', primarykey, {}, function(err,result){ //check err if(result && result.lastEvaluatedKey){ //run the query again var tempSet = result.items; //temporarily store result.items so we can continue and fetch remaining items. } else{ var […]

在Elastic Beanstalk上通过.ebextensions安装git

我收到了部署到Elastic Beanstalk的错误,因为实例上没有git。 我的package.json中的一个依赖依赖于一个git仓库,需要git clone 。 Git没有安装在实例上。 我尝试通过.ebextensions .conf文件进行安装,同时通过yum进行部署,但是当我将ssh移入实例时,它不在那里。 问题是:在该实例上调用npm install之前,在Elastic Beanstalk上运行的Linux实例上安装和运行git的正确方法是什么? 以下是显示错误的日志: [2015-04-18T09:00:02.815Z] ERROR [1777] : Command execution failed: Activity failed. (ElasticBeanstalk::ActivityFatalError) caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py –action npm-install npm WARN package.json amity-api-v2@2.0.0 No repository field. npm WARN package.json amity-api-v2@2.0.0 No README data npm WARN `git config –get remote.origin.url` returned wrong result (https://github.com/awslabs/dynamodb-document-js-sdk) undefined npm WARN […]