Tag: amazon web services

Amazon S3 getObject桶策略

我有一个政策在我的桶里宣布: { "Sid": "Policy 1", "Effect": "Allow", "Principal": "*", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<bucket_name>/*", "Condition": { "StringLike": { "aws:Referer": "http://example.com/*" } } } 我声明了一个条件aws:Referer,因为我只想从某个域访问对象。 在我的节点API中,我添加了s3对象作为内部下载的附件。 this.response.attachment(Key) this.body = request(Location, { encoding: null }) 但是,它总是会产生一个“未处理的拒绝状态码错误:403” 。 该文件可以上传到S3存储桶,我可以得到该对象。 这个部分的问题是下载。 我试图删除在政策的条件和下载工作正常。 我的存储桶政策可能是什么问题?

终止时弹性Beanstalk实例检测

我正在运行AWS Elastic Beanstalk Node.js应用程序,并希望每个EC2实例都能够检测到实例即将终止,以便它可以执行一些清理并释放任何资源。 有没有什么办法从Node.js这样的实例知道它即将被终止?

错误:使用AWS Lambda上的gm降低图片质量时,stream会产生空缓冲区

我已阅读所有其他主题,并尝试了一些答案,但我似乎无法弄清楚为什么我得到这个错误。 我的代码在S3存储桶中获取上传的图片,降低质量并将其放入第二个存储桶中。 干净利落。 随着中小型图像一切正常,但如果我上传的东西超过2 MB(或多或less)我得到的错误标题。 我的Lambda函数有128MB和3分钟的超时时间; 这里是代码: const gm = require('gm').subClass({imageMagick: true}); const AWS = require('aws-sdk'); const async = require('async'); const S3 = new AWS.S3(); exports.handler = (event, context, callback) => { var srcBucket = event.Records[0].s3.bucket.name; var srcKey = event.Records[0].s3.object.key; var dstBucket = "destinationbucket"; var dstKey = "resized-" + srcKey; // Infer the image type. […]

AWS EC2 IAMangular色凭证

使用AWS的Node sdk,我试图使用连接到我的Node应用程序正在运行的EC2实例的IAMangular色给出的凭据和权限。 根据sdk文档,可以使用EC2MetadataCredentials类来为sdk分配configuration属性。 在我使用sdk访问DynamoDB实例的文件中,我有configuration代码: import AWS from 'aws-sdk' AWS.config.region = 'us-east-1' AWS.config.credentials = new AWS.EC2MetadataCredentials({ httpOptions: { timeout: 5000 }, maxRetries: 10, retryDelayOptions: { base: 200 } }) const dynamodb = new AWS.DynamoDB({ endpoint: 'https://dynamodb.us-east-1.amazonaws.com', apiVersion: '2012-08-10' }) 但是,当我试图访问Web应用程序时,我总是得到一个错误: Uncaught TypeError:d.default.EC2MetadataCredentials不是一个构造函数 Uncaught TypeError:_awsSdk2.default.EC2MetadataCredentials不是一个构造函数 即使这是从文档的确切用法! 有什么我失踪的小东西? 更新: 从文件中删除credentials和region定义会导致另一个错误,它会说: Error: Missing region|credentials in config

Amazon S3 – 编辑上传的图像

概述:我正在使用Amazon S3来让用户上传图片。 我一直在编辑路线,以便用户可以在上传后编辑他们的图像。 我正在通过一个PUT路线来做这件事。 这是我目前的解决scheme。 它可以覆盖当前的图像。 问题:如果用户select零新图像,则会覆盖具有空白文件path的旧图像。 也就是编辑后没有图像显示。 如果用户只尝试编辑一个图像,同样的事情发生,一个图像将更新,但其他图像将被空白文件path覆盖,所以没有图像显示。 问题:让用户使用Amazon S3和Multer-S3编辑图像的正确方法是什么? 谢谢你的帮助! 🙂 app.put("/:id", function(req, res){ upload(req,res,function(err) { if(err) { console.log(err); res.redirect('/') } var filepath = undefined; var filepath2 = undefined; var filepath3 = undefined; if(req.files[0]) { filepath = req.files[0].key; } if(req.files[1]) { filepath2 = req.files[1].key; } if(req.files[2]) { filepath3 = req.files[2].key; } var image […]

无法从任何提供程序nodemailer aws加载凭据

我一直在努力寻找一个解决我的问题一段时间。 我一直在尝试使用nodemailer和nodemailer-ses-transport。 这里是nodemailer代码: var cfg = require('../config/config'); var nodemailer = require('nodemailer'); var aws = require('nodemailer-ses-transport'); var transporter = nodemailer.createTransport(aws({ accessKeyId: cfg.KEY, secretAccessKey: cfg.SKEY, default_region: cfg.REG, ratelimit: 5 })); router.post('/signup', function(req, res, next){ passport.authenticate('local.signup', function(err, user, info) { if (err) { return next(err); } // Redirect if it fails if (!user) { return res.redirect('/signup'); } req.logIn(user, […]

如何从无服务器框架中的aws lambda调用mongodb函数?

我一直在观看像这样的无服务器框架上的video教程,并根据我收集的信息,似乎使用框架是pipe理aws lambda函数的最有效的方法之一。 在上面的video链接中,给出了一个使用lambda函数连接到DynamoDB表的示例,然后将其保存。 我需要做的是连接到一个MongoDB表,然后从中获取数据。 我只find了在无服务器上使用DynamoDB但在MongoDB中没有的例子。 我认为这个过程应该是相似的,但似乎并非如此。 我发现这个教程,但它不使用无服务器框架。 下面是在无服务器框架中从lambda连接并保存到Dynamo数据库表的示例: const uuidV1 = require('uuid/v1'); const AWS = require('aws-sdk'); const promisify = require('es6-promisify'); const _ = require('lodash'); const dynamo = new AWS.DynamoDB.DocumentClient(); module.exports.saveUserToDatabase = function(userId, coffeeType, coffeeSize) { console.log('saveUserToDatabase'); const item = {}; item.drink = coffeeType; item.size = coffeeSize; item.userId = userId; return saveItemToTable('coffee-user-table', item); }; 以下片段是用于使用名为lambda-local的npm包连接到MongoDB Atlas数据库的代码: […]

无服务器框架中的webpackconfiguration中的多个入口点

我正在开发使用无服务器框架的无服务器应用程序。 我需要webpack编译根文件夹内的.js文件以及'src'文件夹。 configuration文件和“src”文件夹就在根文件夹中。 这是webpack.config.js文件 var glob = require('glob'); var path = require('path'); var nodeExternals = require('webpack-node-externals'); // Required for Create React App Babel transform process.env.NODE_ENV = 'production'; module.exports = { // Use all js files in project root (except // the webpack config) as an entry entry: globEntries('!(webpack.config).js'), target: 'node', // Since 'aws-sdk' is not […]

什么AWS服务用于nodeJs原始tcp套接字聊天服务器

我正在开发一个基于回合的在线手机棋盘游戏,之前我使用Heroku为我的socketIo nodeJs服务器。 现在我已经转移到原始的Tcp套接字,因为我不想要开销,我想更加控制。 现在的问题,根据Heroku支持,“你不能直接打开一个任意的TCP连接到Dyno并发送数据”。 问题:我刚刚注册了AWS,由于AWS提供了大量的服务,对于我的nodeJs Tcp服务器,最好的解决scheme是什么? 我正在考虑EC2或无服务器的Web应用程序。 如果你有想法,请包括利弊。 先谢谢你。

Sails-mysql拒绝注册连接

我在AWS实例上安装了Sails应用程序,并安装了所有依赖项,但没有出现明显的问题。 但是,每次我尝试启动应用程序,我收到以下错误。 error: AdapterError: Connection is already registered 我还没有设法成功地提升帆上的实例和sails-mysql是新鲜安装的,所以不应该注册连接。 我采取了以下步骤来部署我的应用程序.. 设置一个MySql RDS实例(EU-West) 创build并build立了Ubuntu AMD-64 t2.micro EC2实例(EU-West) 安装了所有先决条件(Git,NVM,NodeJs,Sails等) 克隆我的帆船项目 安装了Sails的依赖关系 正确configurationSails的连接设置以使用我的RDS实例。 我知道我的连接设置是正确的,因为我已经能够在我的本地机器上运行Sails并连接到我的RDS实例,并且始终能够毫无问题地解除连接。 我也可以使用SequelPro连接到我的RDS实例,没有任何问题。 过去我曾经遇到过依赖关系的问题,但是设法解决了这些问题,并且没有在我的本地机器上或者EC2实例上。 在search了一段时间之后,我遇到了一些有类似问题的用户,但是用Waterline的拆解方法设法解决了这些问题,但我不确定如何实现这一点。 我已尽力提供尽可能多的信息,任何帮助都将受到大力赞赏。 风帆版本: 0.12.11 先谢谢你。