Tag: amazon web services

使用节点js中的AWS sdk将整个目录树上传到S3

我目前上传单个对象到S3使用像这样: var options = { Bucket: bucket, Key: s3Path, Body: body, ACL: s3FilePermissions }; S3.putObject(options, function (err, data) { //console.log(data); }); 但是,当我有一个大的资源文件夹,例如,我使用AWS CLI工具。 我想知道,是否有一种本地的方式来做同样的事情与aws sdk(上传整个文件夹到S3)?

AWS EB Node.JSlogin到CloudWatch

是否有任何可能的解决scheme将在Elastic Beanstalk上运行的应用程序的Node.JS日志stream式传输到Amazon CloudWatch? 我没有看到cwl-webrequest-metrics.config文件,但是没有关于格式的信息,我无法格式化它以将Node.JS日志(仅)传送到CloudWatch。 那你提前发表你的意见!

Printf语句不能在lambda上工作

我试图用node.js创build一个lambda函数 w用C代码编写代码,并使用node-gyp将其转换为节点库。 lambda函数完美的工作。 但是它仅打印node.js console.log语句。 这是我的node.js代码 'use strict'; console.log('Loading function'); exports.handler = (event, context, callback) => { var addon = require('./build/Release/testLibraryfromCcode'); addon.sayHello(); console.log("Completed"); } 这是我的C代码 int sayHello() { printf("Haaaaaaaaaaaaai\n"); fflush(stdout); return 0; } 我从lambdatesting控制台得到这样的输出 TART RequestId: 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Version: $LATEST 2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Loading function 2016-06-08T06:21:32.779Z 3e8cd5ff-2d41-11e6-af8f-ada8f1249113 Completed Haaaaai打印缺失。 我需要在我的C代码中打印printf语句。 如果有任何想法?

从另一个lambdaasynchronous调用aws lambda

我需要从另一个lambdaasynchronous调用aws lambda。 我有一个同步调用的工作代码。 exports.handler = (event, context, callback) => { var aws = require('aws-sdk'); var lambda = new aws.Lambda({ region: 'myregion' //change to your region }); console.log("lambda invoke started"); lambda.invoke({ FunctionName: 'testLambda', Payload: JSON.stringify(event, null, 2) // pass params }, function (error, data) { if (error) { console.log("error"); callback(null, 'hello world'); } else { console.log("lambda […]

在AWS上从PHP上Ping一个Node.js服务器

我有一个很长的程序,我已经写在node.js,但我想我的应用程序控制的PHP端踢它。 我的节点是这样的: var http = require('http'); http.createServer(function (req, res) { console.log('Got request') try{ doProcedure() } catch(e) { console.log('Really bad error while trying to do the procedure:') console.error(e.stack ? e.stack : e) } }).listen(8124, "127.0.0.1"); 当我在本地机器上运行这个时, http:// localhost:8124会正确触发事情。 在aws上,我添加了8124端口,但请求mydomain.com:8124不被节点拾取。 我试着停止httpd,然后让节点侦听端口80,排除端口不正确转发,但它仍然没有看到任何东西。 所以我猜想有两个问题: 如何让节点监听守护进程,所以我可以通过请求? (“更新用户x”,“更新用户y”,“更新所有用户”等) 如何从php中ping这个守护进程来在AWS环境中启动这些过程? 奖金的问题:有没有更好的办法,我应该这样做? 谢谢大家, 〜乔丹

AWS Lambda函数中spawn child_process的SIGSEGV

我试图在AWS Lambda函数中产生一个同步subprocess(用于运行ffprobe),但它几乎立即(200毫秒)通过SIGSEGV信号死亡。 我对分段错误的理解是,它是一个尝试访问不允许访问的内存的进程。 我试图增加内存到1024MB(我使用128MB,因为每个执行只使用约56MB),但这并没有改变任何东西。 我知道我不是唯一有此问题的人: https : //forums.aws.amazon.com/thread.jspa?threadID=229397 任何人都知道如何解决此问题? 更新25/4/2016 为了清楚起见,我正在运行的代码是: import { spawnSync } from 'child_process'; exports.handler = (event, context) => { process.env.PATH = `${process.env.PATH}:${process.env.LAMBDA_TASK_ROOT}`; const ffprobe = './ffprobe'; const bucket = event.Records[0].s3.bucket.name; const key = event.Records[0].s3.object.key; console.log(`bucket: ${bucket}`); console.log(`key: ${key}`); const url = 'http://my-clip-url.com'; // An s3 presigned url. if (!url) { throw […]

amqp.node不会检测到连接丢失

我们有一个运行socket.io服务器的nod​​e.js脚本,它的客户端使用RabbitMQ队列中的消息。 我们最近已经迁移到Amazon AWS,RabbitMQ现在是两台机器(冗余实例)的集群。 AMQP连接会不时丢失(这是一个限制,从具有冗余VM的高可用性环境到达,我们必须应付它),如果尝试重新连接,DNS将select要连接的实例它是一个具有数据复制的集群,因此连接哪个实例并不重要)。 问题是重新连接的尝试从来没有做过; 一段时间后,当连接丢失时,amqp.node显然没有注意到连接已经丢失。 此外,消费者停止接收消息,并且socket.io服务器停止接受新的连接。 我们在RabbitMQ URL处设置了55秒的心跳超时(不要与socket.io心跳超时相混淆),并使用amqp.node的callbackAPI检查“错误”和“closures”事件,但显然从未发出。 队列期望消耗的消息被消除。 我们希望节点脚本检测丢失的连接并自行完成,因此环境将自动启动新的进程并重新build立连接。 这里是代码,也许我们正在做一些错误的amqp.nodecallbackAPI或其他东西。 var express = require('express'); app = express(); var http = require('http'); var serverio = http.createServer(app); var io = require('socket.io').listen(serverio, { log: false }); var socket; var allcli = []; var red, blue, green, magenta, reset; red = '\033[31m'; blue = '\033[34m'; green = […]

如何在dynamodb中插入json

这是我的代码。 我想将asset_data json插入到asset_data列中。 我正在使用aws sdk。 它说aws sdk现在支持json。 http://aws.amazon.com/releasenotes/SDK/JavaScript/1691866671551861 var asset_data = { "name": "name" + i, "contentUrl": "http://www.hdwallpapersimages.com/nature-beauty-desktop-images/94892/", "size": 300, "headline": "headline", "description": "assetUrl reference for the creator", "encodingFormat": 'jpeg' }; var params = { TableName: 'xyz', Item: { // a map of attribute name to AttributeValue "asset_id": {S: "asset" + i}, "hit_id": {S: "0"}, […]

AWS DynamoDB问题:用户无权在资源上执行:dynamodb:PutItem

我试图从部署在AWS ElasticBeanStalk上的Node应用程序访问DynamoDB。 我收到一个错误“用户无权执行:dynamodb:PutItem资源” 它在本地完美地工作,只有当我部署到AWS停止执行。 任何人都知道修复? 提前致谢!

InvalidParameterValueException:为函数定义的angular色不能由Lambda承担

我正在使用适用于JavaScript的AWS开发工具包,并且在尝试创buildLambda函数时返回以下错误: InvalidParameterValueException:为函数定义的angular色不能由Lambda承担。 我仔细检查了我的angular色,这是完全有效的。 但是,我仍然无法创buildLambda函数。 我的angular色信任关系是: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }