Tag: amazon web services

为什么Node.js AWS-SDK在创build本地队列时返回了错误的SQS队列URL

我正在使用ElasticMQ在本地开发机器上模拟AWS SQS。 我在Docker容器中运行ElasticMQ,使用docker-osx-dev托pipeLinux VM上的Docker容器。 这意味着我访问虚拟机IP地址的本地ElasticMQ实例,而不是本地主机IP。 当我尝试使用下面的代码在EMQ中创build一个队列时,它会在localhost返回一个队列URL,而不是托pipedocker容器的虚拟机的IP。 var AWS = require('aws-sdk'); var config = { endpoint: new AWS.Endpoint('http://192.168.59.103:9324'), accessKeyId: 'na', secretAccessKey: 'na', region: 'us-west-2' } var sqs = new AWS.SQS(config); var params = { QueueName: 'test_queue' }; sqs.createQueue(params, function(err, data) { if (err) { console.log(err); } else { console.log(data.QueueUrl); } }); 目前这个代码返回: http://localhost:9324/queue/test_queue ,但是它应该返回http://192.168.59.103:9324/queue/test_queue 。 如果我用实际的IP地址replaceURL中的“localhost”,我可以成功地访问这个URL的队列,表明它确实被创build了,但这是一个非常讨厌的黑客行为。 […]

AWS Lambda无法调用Cognito Identity – IAM Role

我已经得到了一点在我的本地机器上运行的JavaScript,但是在Lambda中不起作用。 它在调用cognitoidentity.getOpenIdTokenForDeveloperIdentity时超时 { "errorMessage": "2016-03-17T16:50:25.181Z 4fa3fa5a-ec60-11e5-8316-415fa39313da Task timed out after 15.00 seconds" } 在本地工作正常(调用AWS生产服务),所以它必须是我已经附加到Lambda的策略。 以下是我的政策: AmazonCognitoDeveloperAuthenticatedIdentities AWSLambdaVPCAccessExecutionRole 这也是我的习惯之一: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:eu-west-1:myaccountid:function:users_login" ] } ] } Lambda ARN直接从Lambda屏幕上复制。 任何想法缺less什么?

CloudSearch的javaScript API有助于configurationfq和查询

我知道我在设置参数的地方做错了。 基本上,我想将下面的链接转换为脚本。 点击这里查看查询 aws.config.update({ region: 'us-east-1' }); AWS.config.apiVersions = { cloudsearchdomain: '2013-01-01', // other service API versions }; var csd = new AWS.CloudSearchDomain({ endpoint: 'search-vegme-user-7l3rylms73566frh4hwxblekn4.us-east-1.cloudsearch.amazonaws.com' }); var params = { query: 'nikhil', /* required */ expr: 'distance=haversin(35.621966,-120.686706,latlong.latitude,latlong.longitude)&sort=distance%20asc&return=distance,displayname,profileimageurl', filterQuery: 'latlong:[' 44.37094377949903, -78.40296337445523 ',' 42.92362822050097, -80.40316462554478 ']', partial: true, queryOptions: 'STRING_VALUE', queryParser: 'simple, return :'distance,id,fname', sort: 'asc', […]

如何删除amazon s3文件w / nodejs /angular

var awsSdk = require('aws-sdk'); awsSdk.config = { "accessKeyId": "key", "secretAccessKey": "secret", "region": "us-east-1" } var s3 = new awsSdk.S3({ accessKeyId: 'key', secretAcessKey: 'secret' }); exports.awsDelete = function(req, res){ s3.deleteObject({ Bucket: 'bucket', Key: req.body.photo }, function(err,data){ if (err) console.log('delete err', err); console.log(data); }); }; 我无法弄清楚如何使这项工作(还)。 最初,我得到了一个“无configuration”的错误,所以我添加了上面的awsSdk.config json。 现在,它只是挂起/暂停没有错误。 我正在req.body.photo中获得预期的关键。 我的直觉是,我在我的configuration丢失的东西.. 我在想什么/搞砸了? 更新我已经添加了下面的代码,但仍然没有运气。 我将显示如何传递我的参数: 从下面的答案更新代码: 'use strict'; […]

在AWS EC2 t2.micro上运行Nodejs socket.io时发生内存泄漏

我想检查websocket的最大连接t1.micro实例(1GB RAM)可以处理。 所以我简单的例子来检查它与nodejs(v6.2.1)和socket.io@1.4.6。 这里是服务器上的代码: require("http").globalAgent.maxSockets = Infinity; var http = require('http').createServer(function(req, res) {}); var io = require('socket.io')(http); io.on('connection', function(socket){ socket.on('echo me', function (data) { //receive msg from client var msg = {msg: data.msg}; io.emit('echo me', msg); delete msg.msg; }); }); var clock = setInterval(function(){ global.gc(); }, 2000); http.listen(3000, function(){ console.log('listening on *:3000'); }); 和客户端上的代码 <script […]

使用Node和Node-gyp的AWS Lambda上的奇怪“内存”行为

我有一个用NodeJS编写的AWS Lambda,调用过程非常简单 NODEJS – > NodeModule(CPP) – > Extern C函数,这个设置是用node-gyp编译的。 您可以通过https://drive.google.com/open?id=0B-2d-CuY5fkwS3lwdE96R1V6NEk查看完整的代码 CPP节点模块调用C中的一个运行循环的函数。 并在C函数范围内增加两个variables,而在C代码的主要范围内增加另一个variables。 当你在本地运行这个代码。 循环递增,两个variables都达到了11,正如预料的那样,你有多less运行它。 但是,当您在AWS Lambda中运行相同的代码时,每次调用都会有某种“内存”。 一般范围内未被重置的variables正在增加,为11,22,33等倍数 重复一次,这从来没有发生在本地,两个variables总是在11.你可以通过运行1.构build节点gyp干净configuration构build2.节点app.js(本地运行) Index.js适用于AWS Lambda 我真的不能解释这种行为? 是否有某种上下文或Lambda提供的某种“内存”或caching? 我已经为此做了一个开放的API网关。 (随意刷新,看到“记忆”在行动)。 https://koj2yva6z9.execute-api.us-east-1.amazonaws.com/dev/testLambdaCache 这种行为有时不一致,有时计数重置。 或者,您可以通过上传新的AWS lambda代码进行重置。 任何关于这个奇怪的行为的想法是赞赏。 app.js(用于本地testing) var addon = require('./build/Release/addon'); console.log(addon.testCache()); console.log(" addon method completed"); index.js(在lambda中使用) console.log('Loading function'); exports.handler = (event, context, callback) => { var addon = require('./build/Release/addon'); var […]

Cassandra操作超时

操作超时 – 只收到0个响应。',info:'表示来自服务器的错误信息',代码:4608,一致性:1,收到:0,blockFor:1,isDataPresent:0,… 我每天都会得到这个错误,试图在我的cassandra集群上执行SELECT查询。 我们在m1.large aws实例上有一个3节点的集群。 他们大部分时间都是成功的,但每隔一段时间我们就会得到上述的错误。 我们还没有生产,所以桌子都很小。 我们没有任何超过几千行的表,并且相同的查询在其他时间完成。 提高时间不是一个选项,我不相信它会解决问题(查询应该是短的,错误中的查询是不一样的每次) 这可能是一些连接在节点或networking问题之间陈旧? 什么是testing这些最好的方法? 我也只在客户端看到这个错误,在cassandra日志中有没有我应该看到的地方?

如何从Alexa技能获取Amazon Echo的位置

我知道亚马逊并没有直接向开发者提供获取用户回声的位置的方法,但我想知道是否有办法解决这个问题。 我正在写节点的技能,所以我已经运行到像geoip这样的节点包,但是当我把这个技能上传到aws lambda时,我得到一个错误,说ELF头文件中的某些东西是不正确的。 任何援助将不胜感激!

使用AWS EB Worker时的自定义标题

我打算在EB中将我的nodejs应用程序部署为Web服务器+工作者组合。 networking服务器将一个json(在请求体内)插入一个SQS队列。 工人然后读队列并做一些工作。 问题是我需要在我的工人头。 有什么办法设置标题的请求,以便我可以在工作人员使用它?

节点服务器冻结了大量的websocket数据传输

我试图将数据从node.js服务器stream到很多客户端(> 3000)。 node.js服务器从一个客户端接收数据并将其广播到所有客户端。 数据每秒发送一次,每个数据大约2KB。 我使用ws模块通过websocket发送数据。 节点服务器位于仅运行服务器的AWS EC2 m3.medium实例上。 客户端在15个不同的EC2 t2.micro实例上模拟,每个客户端启动300个客户端。 一切都开始好,但一段时间后(约3分钟)服务器冻结。 我不能杀死进程或在服务器上做任何事情。 但是,如果我杀死了所有的客户端(通过重新启动所有的客户端实例),服务器再次响应。 在服务器上,CPU是40%到60%,内存是<1.5GB(实例有4GB),下载带宽大约是1.5Mbits / sec,上传带宽大约是75Mbits / sec。 我做了一个速度testing,下载或上传时的最大带宽约为400 Mbits / sec。 在服务器冻结之前,内存从300MB增加到1000MB。 我不知道为什么,如果是相关的。 我使用堆转储,并没有设法了解泄漏的位置。 这是服务器上的代码: var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({ port: 8080 }); var users = Array(); wss.binaryType = 'arraybuffer'; wss.on('connection', function(ws) { console.log('new user connected'); users.push(ws); console.log(users.length); ws.on('error', function(e) […]