Tag: aws sdk

AWS SDK与DynamoDB和putItem有关

我正在尝试使用aws-sdk与AWS的dynamodb进行交互 这是我的代码: DynamoDB.putItem({ "TableName": tblName, "Item": { "UserId": { "N": obj.user_id.toString() }, "Identifier": { "S": obj.identifier }, "ReferralToken": { "S": obj.referral_token }, "CampaignId": { "N": obj.campaign_id.toString() }, "FirstName": { "S": obj.first_name }, "LastName": { "S": obj.last_name }, "Gender": { "S": obj.gender }, "BirthDate": { "S": obj.birthdate }, "Username": { "S": obj.username }, "MobileNumber": { "S": […]

使用节点中的aws s3存储区的范围读取部分video文件

下面的代码工作正常,按范围读取文件 var path = 'assets/video/'+req.body.key; var stat = fs.statSync(path); var total = stat.size; var range = req.headers.range; var parts = range.replace(/bytes=/, "").split("-"); var partialstart = parts[0]; var partialend = parts[1]; var start = parseInt(partialstart, 10); var end = partialend ? parseInt(partialend, 10) : total-1; var chunksize = (end-start)+1; console.log('RANGE: ' + start + ' – […]

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

基于标签lambda函数closures/启动ec2实例不起作用

我想基于一个标签和价值通过使用lambda函数来启动/停止ec2实例。 我正在尝试调整一些代码: https : //github.com/SamVerschueren/aws-lambda-stop-server 到目前为止,我已经能够指定我想运行lambda函数的区域,但不能锻炼如何过滤实例。 即过滤标签为“schedule”的实例,然后对该值执行分割string,并检查其中一个分割值是否匹配“stop6pmdaily”。 例如:schedule = start8amdaily | stop6pmdaily if (instance.State.Code === 16) { // 0: pending, 16: running, 32: shutting-down, 48: terminated, 64: stopping, 80: stopped values = instance.Tags["schedule"].Value.Split("|") for (v of values) { if (v == 'stop6pmdaily'){ stopParams.InstanceIds.push(instance.InstanceId); } } } 所以全function代码如下: 'use strict'; /** * AWS Lambda function that […]

无法在AWS Lambda函数中运行ec2方法

我正在调用下面的lambda函数来描述一个实例信息: 'use strict' var aws = require('aws-sdk'); exports.handler = function(event, context) { var instanceID = JSON.parse(event.Records[0].Sns.Message).Trigger.Dimensions[0].value; aws.config.region = 'us-east-1'; var ec2 = new aws.EC2; var params = {InstanceIds: [instanceID]}; ec2.describeInstances(params, function(e, data) { if (e) console.log(e, e.stack); else console.log(data); } }; 在CloudWatch Logs中,我可以看到该函数运行到结束,但ec2.describeInstances方法中没有logging任何内容: END RequestId:xxxxxxxxxxxxxx REPORT RequestId:xxxxxxxxxxxxxx持续时间:xx ms计费时间:xx ms内存大小:xx MB使用的最大内存:xx MB 我的lambda函数具有VPC访问权限和AdministratorAccess的IAMangular色(完全访问权限)。 由于某些原因,它无法运行ec2.describeInstances方法。 什么是错的,我该如何解决?

我如何检查AWS SDK是否提供凭据?

有许多方法可以向AWS SDK提供凭据来执行操作。 我希望确保任何方法在我尝试对持续部署系统进行操作之前成功地设置了界面。 如何检查AWS SDK是否能够find证书?

通过http正确签署对aws资源的请求

我有一个lambda函数,正在写一些数据到我也通过AWS设置的Elasticsearch域。 目前我的域名上的访问策略只是允许我自己的IP地址与域名一起工作 {"Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"AWS": "*"}, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:$ACCOUNT:domain/DOMAIN/*", "Condition": { "IpAddress": { "aws:SourceIp": $MYIP } } }]} 我find了用于签署http请求的aws4库 。 我正在使用它: axios(aws4.sign({ host: process.env.ES_ENDPOINT, method: "post", url: `https://${process.env.ES_ENDPOINT}/foobot/foobot`, data, })) 这实际上是没有aws4.sign作品,因为我有ES域完全打开,但现在我已经应用了上面的IP地址策略。 现在,我不断得到这样的错误,作为回应: 我们计算的请求签名与您提供的签名不符。 检查您的AWS秘密访问密钥和签名方法。 详细信息请参阅服务文档。 还有什么我需要做的,以妥善签署请求?

在节点中使用AWS JS SDK来描述所有ec2实例

我已经在node使用了AWS JS SDK ,并且想要描述所有区域中现有的ec2 istances,但是我得到一个空的reservation[] 。 我尝试使用AWS.config.update{}指定一个区域,它按预期工作,并返回实例,但这是我想要的。 我想查询AWS的所有实例,而不指定区域。 有一个简单的方法! (我用我的智能手机问这个问题,我现在无法访问我的电脑)。 感谢您的帮助。

查询没有密钥的数据(AWS DynamoDB SDK Nodejs)

我刚开始使用适用于DynamoDb的AWS Nodejs SDK 我有点困惑,我怎么可以不使用分区键访问特定的数据。 我们假设我的表中只有1个项目,属性“id”设置为我的分区键 表名称:用户 { "full_name": { "S": "John Cena" }, "id": { "S": "ABC123" }, "password": { "S": "youcantseeme" }, "username": { "S": "AndHisNameIs" } } 下面的代码将返回上面的对象,如果我查询使用我的密钥 顺便说一句我正在使用dynamodb.query(params,function(err,data){} 使用键search let params = { TableName : "Users", KeyConditionExpression: "#myid = :id", ExpressionAttributeNames:{ "#myid": "id" }, ExpressionAttributeValues: { ":id": { S: "ABC123" } } […]

直接到s3 /客户端file upload。 用这种方法是否存在将未使用的文件存储在s3存储桶中的问题?

我正在查看由heroku(对于NodeJs应用程序)build议通过服务器签署s3文件的这个教程,然后直接从客户端处理上传: https://devcenter.heroku.com/articles/s3-upload-node 我想知道很多未使用的文件存储在s3存储桶中的可能性。 在heroku教程中,他们运行一个用户编辑场景。 他们指出: 当用户select要上传的图像时,上传到S3的处理将自动与本文前面介绍的过程asynchronous处理。 一旦上传完成并成功,图像预览会随着所选图像而更新。 然后用户点击“提交”button,该button将上传图像的用户名,名称和URL发布到要检查和/或存储的节点应用程序。 如果之前没有用户上传图片,则会发布默认的头像图片url。 那么,如果用户select图像,然后点击另一个页面而没有完成并提交用户configuration文件信息呢? 这只是一个浪费的文件存储在你的s3桶? 我在我的平均应用程序中使用类似的方法,在提交: 我上传文件到S3。 然后,承诺,一旦上传完成,我提交用户的个人资料信息/岗位s3的url到服务器。 我有一个类似的担心,如果用户离开之前承诺调用或有连接问题 – 是否有存储未使用的文件的问题? 这是处理这个问题的典型方式吗?这只是风险的一部分?