Articles of amazon web services

aws + serverless + webpack =>在prod中找不到xxx模块

我想创build一个包,使用无服务器和webpack在AWS上进行部署。 在serverless.yml我想声明所有的资源(主要是DynamoDb表)和函数。 我想要使​​用外部的node.js库。 该文件夹结构是: |- serverless.yml |- webpack.config.js |- package.json |- src \ – file1.js | – file2.js 从serverless.yml中提取 functions: function1: handler: src/file1.f1 function2: handler: src/file2.f2 从webpack.congfig.js中提取 module.exports = { entry: { file1: './src/file1.js', file2: './src/file2.js', }, target: 'node', output: { libraryTarget: 'commonjs', path: path.join(__dirname, '.webpack'), filename: '[name].js', }, module: { loaders: [ { test: […]

使用x-amz-tagging请求标头指定标签

我有一个节点程序file upload到aws s3,我需要指定与请求标头的x-amz标签。 我尝试了一些东西,但不起作用! function buildRequestHeader() { return { 'Content-Length': fileBuffer.size, 'Content-Type': mimeType, 'x-amz-acl': 'public-read', 'x-amz-tagging' :{"tag1":'abcd',"tag2":'efgh'} } } 我已经看到了一些文件, PUT object-key?tagging HTTP/1.1 Host: examplebucket.s3.amazonaws.com Content-Length: length Content-MD5: pUNXr/BjKK5G2UKExample== x-amz-date: 20160923T001956Z Authorization: authorization string <Tagging> <TagSet> <Tag> <Key>tag1</Key> <Value>val1</Value> </Tag> <Tag> <Key>tag2</Key> <Value>val2</Value> </Tag> </TagSet> </Tagging> 你能解释一下它是如何工作的吗?

错误:configuration文件丢失 – /nodeapp/node_modules/aws-sdk/lib/request.js:31

我从AWS-SDK中使用s3.listObjects()函数拉对象,并且不断收到以下错误: /nodeapp/node_modules/aws-sdk/lib/request.js:31 其次是 Error: Missing credentials in config at IncomingMessage.<anonymous> (/nodeapp/node_modules/aws-sdk/lib/util.js:863:34) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:186:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickDomainCallback (internal/process/next_tick.js:122:9) 这不加起来,因为我有一个不同的路线(downloadParam),从S3中检索一个对象,而不会给我这个错误。 此外,当我注销从downloadResults路由检索到的对象,似乎检索对象没有问题,但我仍然会得到这个错误。 我花了几个小时在这个问题上,我似乎无法弄清楚为什么会发生这种情况。 我已经粘贴了两条路线的代码,一个是有效的,另一个是没有的。 从我在线收集的信息来看,这看起来更像是一个代码问题,而不是AWS-SDK的凭证问题。 downloadParam: function(app, s3){ app.use('/api', apiRoutes) apiRoutes.get('/download-param-file', function(req, res, next){ res.set({'Content-Type':'text/csv'}) s3.getObject({Bucket: 'some-bucket', Key: 'some-key' + req.query.fileName}, function(err, file){ if (err) { console.log(err); return next(err); […]

aws-sdk获取文件信息

我正在尝试使用aws-sdk节点模块从我的Amazon S3 server上的文件获取文件信息。 我想要得到的是文件名,文件types和大小。 我已经尝试了下面的方法,但没有运气: s3.headObject(params, function (err, data) { if (err) { console.log(err, err.stack) } else { d.resolve(data); } }); 和 s3.getObject(params, function (err, data) { if (err) { console.log(err, err.stack) } else { d.resolve(data); } }); 通过他们的文档看,我似乎无法find任何其他方法,会给我我需要的信息。 所以我的问题是如何获得上述信息?

AWS s3文件以express的方式上传:上传与分段上传有什么区别?

我试图上传一个文件到AWS s3使用expressionjs,而不是putObject我使用upload http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property函数 var options ={ partSize: 5242880, queueSize: 1 }; console.time('Uploadtime'); s3.upload(params,options,function(err, data) { if (err) console.log(err, err.stack); // an error occurred else { console.timeEnd('Uploadtime'); console.log("uploaded",data); res.json({ 'status':'Uploaded' }); } // successful response }); 我觉得上传和分段上传做同样的事情(我是否正确??)我的问题是我需要使用多部分上传或留在upload方法。 从文档我无法得到上传和multipartupload之间的相似之处

AWS中的lambda函数返回后,variables为null

我试图定义局部variables,然后调用lambda函数将值填充到我的本地variables: var listOfAliases = null; lambda.invoke(params, function(err, data) { if (err) { //context.fail(err); console.log(`This is the ERROR execution =${err} =================================`); prompt(err); } else { //context.succeed('Data loaded from DB: '+ data.Payload); listOfAliases = JSON.stringify(data.Payload); console.log(`This is the VALIDE execution =${data.Payload} =================================`); //I can see this in the log with proper values console.log(`This is the VALIDE execution(listOfAliases) […]

EntityAlreadyExists:名称为chatbot-andrea-executor的angular色已经存在

我正在用claudiajs创build一个Nodebot。 const botBuilder = require('claudia-bot-builder') const excuse = require('huh') module.exports = botBuilder((req) => { return `Thanks for sending ${req.text}. Your message is very important to us, but ${excuse.get()}` }) 但是当我部署到aws云。 claudia create –region us-east-1 –api-module app 我得到这个错误: { EntityAlreadyExists: Role with name chatbot-andrea-executor already exists. at Request.extractError (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/protocol/query.js:47:29) at Request.callListeners (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/sequential_executor.js:105:20) at Request.emit (/.nvm/versions/node/v6.10.3/lib/node_modules/claudia/node_modules/aws-sdk/lib/sequential_executor.js:77:10) at […]

如何使用aws-sdk获取AWS S3上的文件的URL?

我正在使用AWS Lambda函数创build一个文件并将其保存到S3上的存储桶中,该文件工作正常。 执行putObject方法后,我得到一个data对象,但它只包含最近添加的对象的Etag 。 s3.putObject(params, function(err, data) { //data only contains Etag }); 我需要知道我可以在浏览器中使用的确切URL,以便客户端可以看到该文件。 该文件夹已经公开,我可以看到该文件,如果我从S3控制台复制链接。 我试过使用getSignedUrl但它返回的URL用于其他目的,我相信。 谢谢!

无服务器框架Facebook Bot慢(AWS Lambda)

我正在开发一个Facebook聊天机器人,我正在使用无服务器框架(Node.js)开发它并将其部署到aws lambda。 在开始的几个星期里,我使用无服务器的离线插件运行了一个本地无服务器的lambda模拟器,一切都很好。 昨天,我终于决定将其部署到AWS lambda,现在我看到性能和一致性的显着下降。 有时机器人需要10秒才能做出回应,有时甚至是瞬间的。 奇怪的是,在lambda云日志中,它总是说这个函数在150毫秒左右完成,这似乎超快,但脸谱机器人根本不反映速度。 我正在打一个数据库,但查询绝对不会花费近10秒的时间来运行。 更新: 我决定尝试使用邮差(这基本上是curl的)手动发送请求到API端点来testingbot。 每当api即时回复,即使我发送了与Messenger一样的请求主体。 所以看起来这个请求只是需要很长时间才能达到lambda api,但是当它到达那里时,它就像应该运行一样。 任何想法如何解决这个问题?

通过aws codebuild为nodejs lambda创buildzip文件

我想通过aws codebuild过程为我的nodejs lambda创build一个zip工件 – 这样lambda函数可以在S3中使用这个zip文件作为源代码,并且我们有一个部署“certificate”,用于在codebuild中使用git commit id进行pipe理 我在github-repo中的文件结构是 folder1 – myfile.js – otherfile.js folder2 – otherfiles.js package.json 现在为nodejs lambda项目我想zip文件没有zip文件夹(我们需要的lambda nodejs项目),所以zip应该直接包含以下文件 – myfile.js – node_module ==> folder from codebuild via npm install command 问题: 1)在S3输出zip包含在文件夹即.zip-> rootfolder-> myfile.js,而不是我们要求的.zip-> myfiles.js这是不可用的lambda作为nodejs它应该有文件在根zip和不在里面他们(文件夹内没有相对path) 2)path – 你可以看到myfile.js是在一个文件夹我想相对path被省略 – 我试图放弃path,但问题是所有的node_module文件也在文件夹而不是在文件夹作为丢弃path适用于他们两个 – 我可以设置丢弃path只为myfile.js而不是为node_module文件夹? 我目前的yaml文件: artifacts: files: – folder/myfile.js – node_modules/**/* discard-paths: yes 如果有人可以提供解决scheme,这将是很好的? 如果解决scheme中不包含更改的github-repo文件夹结构,我想在其他文件中也重复这个用于创build其他lambda函数的repo。 […]