Articles of amazon web services

直接从Bitbucket部署到AWS Elastic Beanstalk

如何将最新的位(在本例中为nodejs应用程序)从Bitbucket部署到AWS Elastic Beanstalk。 我想避免从我的本地系统做一个git aws.push,因为这推动了整个repo,在低带宽情况下可能会很痛苦。 我想要的是能够在本地提交我的更改,然后推送到Bitbucket。 然后触发从Bitbucket到Elastic Beanstalk部署的部署。 任何帮助,将不胜感激。 我很乐意避免为了这样做而注册第三方服务,但是如果有必要的话,我会欢迎您的build议

为AWS S3的多个对象创build多个签名的URL

我们可以在node.js中创build多个签名的S3(AWS)的URL,用于单个请求中的多个对象。 假设需要生成100个用于访问100个对象的签名URL,并且我们正在使用被称为100次的AWS -sdk的getSignedUrl()函数。 我们能否以优化的方式做到这一点,并减less请求数量?

使用nodeJs和AWS调整图像大小

我正尝试使用nodejs从AWS S3存储桶中获取图像,将其大小调整为4种不同的大小,然后将其保存回同一个存储桶中,但保存到一个文件夹中,每个文件夹又包含4个文件夹,每个文件夹用于新的大小。 当我运行该函数时,我得到以下错误: Unable to resize devimageresize/diavelBlack.jpg and upload to / due to an error: Error: Stream yields empty buffer 我是相对较新的nodejs,我不知道我正在写代码。 什么是造成这个错误? 这是我的代码: // dependencies var async = require('async'); var AWS = require('aws-sdk'); var gm = require('gm'); var util = require('util'); // get reference to S3 client var s3 = new AWS.S3(); exports.handler = function(event, […]

Aws lambda描述实例超时

我有这个简单的describe实例函数,我试图通过AWS Lambda在nodejs中运行: var AWS = require('aws-sdk'); AWS.config.region = 'us-east-1'; exports.handler = function(event, context) { console.log("\n\nLoading handler\n\n"); var ec2 = new AWS.EC2(); ec2.describeInstances(function(err, data) { console.log("\nIn describe instances:\n"); if (err) { console.log(err, err.stack); context.done(null, 'Function Finished from error!'); // an error occurred }else { console.log("\n\n" + data + "\n\n"); context.done(null, 'Function Finished with data!'); // successful […]

基于Cognito ID的S3文件夹访问的IAM策略

我创build了IAM策略,允许Cognito用户写入我的S3存储桶,但是我想根据他们的Cognito ID将它们限制到文件夹。 我在这里遵循了亚马逊的指示,并创build了如下所示的策略: { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/${cognito-identity.amazonaws.com:sub}*" ] } 但是当我尝试使用AWS iOS SDK的v2进行上传时,我得到一个访问被拒绝的错误。 如果我修改了资源的最后一个path组件,用我从SDK的AWSCognitoCredentialsProvider获得的显式identityId值来replace${cognito-identity.amazonaws.com:sub} 。 { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*" ] } 我的理解是,这些应该等同于相同的东西。 我是否在我的政策中遗漏了某些内容,或者是否应该在我的上传请求中使用不同的path? ** 更新 ** 我原本在iOS中有这个问题,所以今天晚上我尝试在node.js中做同样的事情,结果是相同的。 以下是我在节点中使用的简单代码: var s3 = new AWS.S3(); AWS.config.region = 'us-east-1'; AWS.config.credentials = new AWS.CognitoIdentityCredentials(AWSParams); AWS.config.credentials.get(function (err) { if (!err) { console.log("Cognito Identity […]

为什么当我永远使用我的节点应用程序进程不断停止?

在免费层的Amazon EC2实例上,我设置了一个运行在express上的简单的node.js Hello World应用程序。 如果我运行npm start ,我的应用程序运行良好,我可以从我的浏览器中打开,我看到以下输出: > myappname@0.0.0 start /home/ec2-user/app > node ./bin/www 我已经在全球安装了永久工具。 当我forever start app.js运行forever start app.js ,我看到: warn: –minUptime not set. Defaulting to: 1000ms warn: –spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms info: Forever processing file: app/app.js 但是,当我检查forever list ,我看到过程已经停止: info: […]

如何在客户端将可查看file upload到Amazon S3?

让我开始说,我通常很不愿意发表这个问题,因为我总觉得互联网上的所有东西都有答案。 花了无数小时寻找这个问题的答案后,我终于放弃了这个声明。 假设 这工作: s3.getSignedUrl('putObject', params); 我想做什么? 使用getSignedUrl方法通过PUT(从客户端)将file upload到Amazon S3 允许任何人查看上传到S3的文件 注意:如果有更简单的方法允许客户端(iPhone)通过预先签名的URL上传到Amazon S3(并且不需要公开证书客户端) 主要问题* 查看AWSpipe理控制台时,上传的文件具有空白的权限和元数据集。 查看上传的文件时(例如,通过双击AWSpipe理控制台中的文件),我得到一个AccessDenied错误。 我试过了什么? 尝试#1:我的原始代码 在NodeJS中,我生成一个预先签名的URL,如下所示: var params = {Bucket: mybucket, Key: "test.jpg", Expires: 600}; s3.getSignedUrl('putObject', params, function (err, url){ console.log(url); // this is the pre-signed URL }); 预先签名的URL看起来像这样: https://mybucket.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AABFBIAWAEAUKAYGAFAA&Expires=1391069292&Signature=u%2BrqUtt3t6BfKHAlbXcZcTJIOWQ%3D 现在我通过PUT上传文件 curl -v -T myimage.jpg https://mybucket.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AABFBIAWAEAUKAYGAFAA&Expires=1391069292&Signature=u%2BrqUtt3t6BfKHAlbXcZcTJIOWQ%3D 问题 我得到上面列出的*主要问题 尝试#2:在PUT上添加内容types和ACL 我也尝试在代码中添加Content-Type和x-amz-acl,像这样replace参数: var params […]

将项目放在使用适用于Node.js的AWS开发工具包的DynamoDB表上

我不熟悉javascript和node.js,想知道是否有人可以帮助我找出通过node.js SDK将新项目放到AWS Dynamodb上现有表的语法。 这是我迄今为止。 有什么我想要做的例子吗? 如果有人能指出我的方向正确的话,我会非常感激。 var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config.json'); AWS.config.update({region: 'us-east-1'}); var dynamodb = new AWS.DynamoDB(); var item = { // I need to put the an item with a the primary key of "id", and an attribute called "item" // I'm new to js and node.js, so if somebody could help me […]

如何通过Amazon API Gateway + Lambda(节点)获取用户的公共IP地址

我目前正在写一个Node.js的lambda函数,我想logging传入的请求者的公共IP地址。 我一整天都在浏览API网关和Lambda文档,但还没有find解决scheme。 lambda event对象是否包含可用于提取用户IP的请求元数据?

亚马逊S3服务器上的Concat MP3 /媒体audio文件

我想连接在Amazon S3服务器上上传的文件。 我怎样才能做到这一点。 本地机器上的串联我可以使用以下代码。 var fs = require('fs'), files = fs.readdirSync('./files'), clips = [], stream, currentfile, dhh = fs.createWriteStream('./concatfile.mp3'); files.forEach(function (file) { clips.push(file.substring(0, 6)); }); function main() { if (!clips.length) { dhh.end("Done"); return; } currentfile = './files/' + clips.shift() + '.mp3'; stream = fs.createReadStream(currentfile); stream.pipe(dhh, {end: false}); stream.on("end", function() { main(); }); } main();