Articles of amazon web services

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" ] } ] }

使用AWS SDK加载凭据JSON导致错误

我正在尝试使用loadFromPath加载AWS的凭据,并得到一个意外的错误。 使用AWS.config.update硬编码相同的证书正常工作。 为了确保凭证文件的path和格式是正确的,我加载了与fs.readFile一样的文件,并且加载正确,所以似乎没有任何path/权限问题。 这似乎超级基本,但我已经拉我的头发试图解决。 谢谢你的帮助。 错误/输出: Here: /home/ec2-user/.ec2/credentials.json Got this through readFile: { access_id: 'XXXXXXX', private_key: 'XXXXXXX', keypair: 'praneethkey', 'key-pair-file': '/home/ec2-user/.ec2/praneethkey.pem', region: 'us-west-2' } /home/ec2-user/node_modules/aws-sdk/lib/config.js:221 if (err) throw err; ^ SyntaxError: Unexpected token < at Object.parse (native) at /home/ec2-user/node_modules/aws-sdk/lib/metadata_service.js:100:38 at IncomingMessage.<anonymous> (/home/ec2-user/node_modules/aws-sdk/lib/metadata_service.js:75:43) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:910:16 at process._tickCallback (node.js:415:13) 代码: 'use strict'; var AWS […]

npm安装安装未在package.json中指定的额外软件包

我在AWS ec2实例上有一个相当典型的package.json 。 我正在运行npm install ,而不是安装 { "name": "angular-app-server", "description": "Back end server to support our angular app", "version": "0.0.1", "private": true, "dependencies": { "assert": "^1.3.0", "async": "^0.9.0", "bcrypt-nodejs": "0.0.3", "body-parser": "^1.13.1", "connect-multiparty": "^1.2.5", "express": "~3.0", "express-namespace": "~0.1.1", "express-session": "^1.11.1", "forever": "^0.14.2", "mongodb": "^2.0.36", "multiparty": "^4.1.2", "nodemailer": "^1.3.4", "open": "0.0.3", "passport": "~0.1.12", "passport-local": "~0.1.6", "request": […]

无法在AWS Lambdas中使用任何第三方模块

我正在使用一个lambda使用模块(asynchronous,请求等) Unable to import module 'index': Error at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/var/task/index.js:1:63) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 示例代码: var AWS = require('aws-sdk'), util = require('util'), request = require('request'); exports.handler = function(event, context) { console.log('test'); context.done(); […]

AWS Lambda函数从不调用callback

我创build了一个节点lambda函数,可以简单地调用Aurora数据库。 当我在控制台中testing函数时,查询返回,我可以在日志中看到结果,但callback似乎永远不会被调用,所以我的lambda函数超时。 我找不出什么问题。 希望这里有人能指点我这个问题。 var mysql = require("mysql"); module.exports.handler = function(event, context, cb) { console.log('start\n'); var con = mysql.createConnection({ … }); console.log('call data\n'); con.query('SELECT * FROM Tags', function(err, rows) { console.log('Data received from Db:\n'); console.log(rows); console.log('calling callback'); cb(null, 'Success'); console.log('callback called'); }); console.log('data called\n'); }; 由此产生的Cloudwatch日志如下所示… 2016-07-25T14:20:05.343Z daf5cd6b-5272-11e6-9036-e73ad17006df start 2016-07-25T14:20:05.398Z daf5cd6b-5272-11e6-9036-e73ad17006df call data 2016-07-25T14:20:05.405Z daf5cd6b-5272-11e6-9036-e73ad17006df […]

无法使用Git部署到AWS Elastic Beanstalk

我正在关注Elastic Beanstalk文档( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html ),但是我无法部署node.js或PHP应用程序饭桶。 $ eb push Error: Failed to create the AWS Elastic Beanstalk application version Cannot run aws.push for local repository HEAD: 如果我尝试从git中推送,也会发生同样的情况 $ git aws.push Updating the AWS Elastic Beanstalk environment phpapp-env… Error: Failed to create the AWS Elastic Beanstalk application version 当您调用eb init时,AWS工具会设置一些git快捷方式。 正在失败的电话是… $.git/AWSDevTools/aws.elasticbeanstalk.createapplicationversion Error: Failed to create the AWS […]