Articles of amazon web services

使用python / node.js获取当前的AWS安全组限制

大家好! 希望你们一切都好。 在达到AWS服务限制时,我有一个lambda函数提醒团队,其中一个场景就是我需要获取当前的安全组限制(当然默认情况下,它是500,但是可能随着限制扩展而改变。),并将其与当前使用情况进行比较,如果它在任何地方接近极限,则应该提醒。 我现在能够得到警报。 但是,每次扩展安全组限制时,我都需要更新lambda函数,这是因为我之前使用了硬编码,而且我想通过自动获取限制来避免。 有人可以帮我解决这个问题吗? 提前致谢!!

ValidationException:ExpressionAttributeValues不能为空

即使ExpressionAttributeValues不是空的它给我这个错误ValidationException:ExpressionAttributeValues一定不能是空的 app.post('/gpsfromuser', passport.authenticate('jwt', {session: false}), (req, res) => { var xcorpassed = req.body.xcor var ycorpassed = req.body.ycor console.log(xcorpassed); console.log(ycorpassed); var params = { TableName:passengers, Key:{ "pid": req.user.id }, UpdateExpression: "set cordx=:x, cordy=:y", ExpressionAttributeValues:{ ":x":xcorpassed, ":y":ycorpassed }, ReturnValues:"UPDATED_NEW" }; console.log("Updating the item…"); docClient.update(params, function(err, data) { if (err) { console.error("Unable to update item. Error JSON:", JSON.stringify(err, […]

将文件从公共S3存储桶复制到专用S3存储桶的最佳方法

我需要使用nodeJS AWS SDK从AWS S3存储桶上公开可访问的资源中复制私有存储桶configuration(例如,secretkey,accesskey等)。 我的想法是使用http.get或request获取公共对象的内容,然后简单地使用常规的S3.upload()函数,但也许有一个更有效的方法。 谢谢

expressjs文件下载内存泄漏

我得到了一个非常奇怪的行为ExpressJs下面的代码如果命中多个请求在第二次抛出404到客户端,看着日志,我看到的是以下内容: (节点:1460)警告:检测到可能的EventEmitter内存泄漏。 添加了11个文件监听器。 使用emitter.setMaxListeners()来增加限制 目标方法(从AWS S3存储桶下载文件并pipe理响应): exports.download = function (req, res) { var fileName = req.params.fileName; var options = { Bucket: config.s3.bucket, Key: fileName }; res.attachment(fileName); s3.getObject(options).createReadStream().on('error', function(err){ console.log(err); }).pipe(res); }

使用Websockets设置AWS ElasticBean

我正在尝试设置Websockets以便将消息发送到AWS ,以便我可以处理消息并将一些有效内容发送到云中的其他资源,并向客户端部分提供自定义响应。 但是,我无法得到这个工作。 主要目标是通过WSS://向WS://发送消息, WSS://根据有效负载内容使用WS:// (如果可能的话)的第一种方法,它将返回自定义响应。 然后closures连接,如果不需要进一步的操作。 我已经尝试了这里和这里张贴的build议。 但是,或者我对负载平衡 , Websockets , TCP和HTTP的了解不够,我不能看到一些解决scheme的缺失,我做的一切都是错误的,或者两者兼而有之。 至于现在,我有一个像这样的Elastic Beanstalk示例项目结构: + nodejs-v1 |–+ .ebextensions | |— socketupgrade.config | |–+ .elasticbeasntalk | |— config.yaml | |— .gitignore |— app.js |— cron.yaml |— index.html |— package.json Elastic Beanstalk环境和应用程序是标准创build的,并且还确保了Balancer是应用程序 , 而不是经典的 ,因此Application Load Balancer可以使用Websockets作为许多源和文档状态。 它使用端口80上的HTTP进行设置。粘滞性启用一天。 这里是使用的代码: app.js : 'use strict'; const express = […]

从AWS Lambda Node.JSstream式传输到S3

我的目标是创build一个大的gzip文本文件,并将其放入S3。 文件内容由我从另一个源代码循环读取的块组成。 由于这个文件的大小,我不能保存所有的数据在内存中,所以我需要以某种方式直接stream到S3和ZIP在同一时间。 我知道如何使用Node.JS中的常规fs执行这个技巧,但是我很困惑是否可以使用AWS Lambda中的S3来完成相同的技巧? 我知道s3.putObject 可以使用 streamObject ,但是在我看来,当我执行putObject操作时,这个stream应该已经完成​​,什么会导致超出允许的内存。

如何使用AWS EB扩展编译Vuejs组件?

我在安装Nodejs和进一步在AWS Elastic Beanstalk上运行“ npm run production ”时遇到问题。 我正在编写configuration,并尝试了多个,但他们都不允许我安装nodejs。 我试图手动安装节点SSH到远程机器并运行: “ sudo yum -y install nodejs npm –enablerepo-epel ” 但它安装了节点v0.10,然后我无法运行“ npm run prod ”(我猜这是因为Laravel Homestead默认使用节点v6.11。

在docker中服务bundle.js

现在我一直在尝试部署一个应用程序aws。 我的web应用程序在本地工作得很好,但是当它通过Docker容器托pipe在aws上时,我遇到了以下错误: Failed to load resource: the server responded with a status of 404 (bundle.js) or… GET http://my_AWS_ROUTE_53/bundle.js net::ERR_ABORTED 文件夹结构: config –> webpack.config.js dist –> bundle.js src –> public (where all of my client code is, also what is producing bundle.js) –> index.js –> server –> static –> index.html Dockerfile app.js 这里是我如何在app.js中服务我的文件: app.use('/', express.static(__dirname + […]

节点server.js不会从弹性beanstalk获得envvariables

我尝试使用AWS Elastic Beanstalk上的AWS CodeBuild启动一个node.js项目。 我把我的envvariables放在Software Configuration下的Elastic Beanstalk Configuration中。 之后,我将项目部署到Elastic Beanstalk,而我的server.js没有envvariables。 我在server.js的顶部实现了一个console.log(process.env),但是没有我在Elastic Beanstalkconfiguration中填充的envvariables。 我访问了Elastic Beanstalk日志。 另外我的日志告诉我这个: Error: Redis connection to 127.0.0.1:6379 failed – connect ECONNREFUSED 127.0.0.1:6379 at Object.exports._errnoException (util.js:1018:11) at exports._exceptionWithHostPort (util.js:1041:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14) npm ERR! Linux 4.9.43-17.39.amzn1.x86_64 npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.11.1-linux- x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.11.1-linux- x64/bin/npm" "run" "start" npm ERR! node v6.11.1 npm ERR! […]

在NodeJS上调用AWS Lambda上的R脚本

由于几个小时的无果search,我发布这个问题。 我想这是一个重复的这一个: 你如何运行AWS Lambda与NodeJS RServe? 但是,由于这个问题的作者似乎没有成功完成他的目标,我将再次尝试。 我目前有什么: 一个NodeJS服务器,通过Rserve调用一个R脚本,并通过node-rio传递数据进行评估。 负责的function如下所示: const R = (arg1, arg2) => { return new Promise((resolve, reject)=>{ const args = { arg1, arg2 }; //send data to Rserve to evaluate rio.$e({ filename: path.resolve('./r-scripts/street.R'), entrypoint: 'run', data: args, }) .then((data)=>{ resolve(JSON.parse(data)); }) .catch((err)=>{ reject(`err: ${err}`); }); }); }; 这工作得很好。 我正在将数据发送到我的R实例,并将结果返回到我的服务器。 我最终想要实现的是: 每个请求似乎都产生了自己的R工作空间,这个空间有相当大的内存开销。 因此,使用这种方法即使服务数百个并发请求也是不可能的,因为我的AWS […]