Articles of amazon web services

Nodejs – 使用MochatestingAWS

我在为使用AWS和graphicsmagick的以下nodejs代码编写testing时遇到了麻烦。 我试图search如何编写async的waterfall方法testing的例子,但没有任何明确的结果。 // dependencies var async = require('async'); var AWS = require('aws-sdk'); var gm = require('gm').subClass({ imageMagick: true }); var util = require('util'); // get reference to S3 client var s3 = new AWS.S3(); exports.AwsHandler = function(event, context) { // Read options from the event. console.log("Reading options from event:\n", util.inspect(event, {depth: 5})); var srcBucket = […]

如何设置使用Amazon Lambda在S3中创build的文件的打开/下载权限?

我有一个成功将文件写入Amazon S3存储桶的Amazon Lambda函数。 但是,默认情况下,这些文件不能公开访问。 如何在写入时自动访问它们? 有没有办法改变桶本身,使所有的项目是公开可读的(打开/下载)? 或者,我已经收集到这可以通过IAMangular色策略来完成。 这是我的: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::*" ] } ] } 我认为这是“资源”,需要改变,但我不知道如何。 为了完整性(如果有其他人需要做类似的事情,并且涉及到Lambda文档),这里是我在客户端的ajax调用(我正在向S3写一个图像,并且需要返回文件名): $.ajax({ url: 'https://mylambdafunctionurl/', type: 'POST', crossDomain: true, contentType: 'application/json', data: JSON.stringify(data), dataType: 'json', […]

扫描两个时间戳之间的查询

我正在为DynamoDB使用aws-sdk编写nodejs 5.7.1应用程序。 我有一个我用下面的代码创build的事件表: var statsTableName='bingodrive_statistics'; var eventNameColumn = 'event_name'; var eventTimeColumn = 'event_time'; var eventDataColumn = 'event_data'; var params = { TableName: statsTableName, KeySchema: [ // The type of of schema. Must start with a HASH type, with an optional second RANGE. { // Required HASH type attribute AttributeName: eventNameColumn, KeyType: 'HASH', }, { // […]

DynamoDB和Node Js:意外的令牌h

我试图与DynamoDB竞争Node js亚马逊入门指南。 我试图创build一个表,但这里是我的错误: Unable to create table. Error JSON: { "message": "Unexpected token h", "code": "SyntaxError", "time": "2016-05-06T16:59:50.411Z", "statusCode": 200, "retryable": false, "retryDelay": 0 我正在运行以下节点(直接从亚马逊开始指南): var AWS = require("aws-sdk"); AWS.config.loadFromPath('./.aws/credentials.json'); AWS.config.update({ region: "us-west-2", endpoint: "http://localhost:8000" }); var dynamodb = new AWS.DynamoDB(); var params = { TableName : "Movies", KeySchema: [ { AttributeName: "year", KeyType: "HASH"}, […]

在AWS EC2上按计划运行Node.js函数

我试图实现按计划的时间间隔在AWS EC2实例上运行Node.js代码的能力。 它与AWS Lambda的工作方式类似,但Lambda不提供我需要的资源量。 我已经有一个工作Node.js应用程序,我只需要得到它在EC2上运行(我认为)。 林新的服务器和EC2,所以我迷失在如何实现这一点。 我能够设置并运行一个EC2实例,但运行代码是另一回事。 我的想法是在EC2实例上托pipeNode.js应用程序,但在调度应用程序以在EC2中启动的时间表上运行Lambda函数。 我只是不知道从哪里开始学习如何做到这一点。 一如既往,感谢您的帮助!

AWS Lambda Invoke不执行lambda函数

我创build了4个Lambda函数来处理将写入MySQL表的信息。 前三个函数分别select插入和更新一个MYSQL表logging。 然后我创build了第四个函数来接受logging细节作为事件参数的一部分。 这个函数首先尝试通过调用第一个lambda函数来selectlogging,如果find它,将使用更新lambda函数更新表上的logging。 如果没有find它,它将调用插入函数来添加logging。 我正在使用操作MySQL表的3个函数pool.query。 我也使用lambda.invoke从第四个函数调用这三个函数。 我能够通过传递logging细节作为参数成功地在本地testing第四个函数,并且能够成功调用三个Lambda函数并更新mySQL表logging。 我遇到的问题是,当我在AWS Lambda中上传函数时,它不会调用这三个函数中的任何一个。 我没有看到日志中的任何错误,所以我不知道如何检查问题出在哪里。 以下是调用其他函数的y代码: exports.handler = (event, context, callback) => { var err = null; var payload = { qryString : event.qryString, record: event.updaterecord, dbConfigPool : event.dbConfigPool } var params = { FunctionName: 'getInventory', Payload: JSON.stringify(payload) } console.log(' before invoke ' + JSON.stringify(params) ) lambda.invoke(params, function(err, data) […]

在主程序之前在lambda中加载S3文件

我正在写一个lambda函数,需要加载一个存储在S3中的密钥。 它不会经常改变,所以我宁愿不要每次调用lambda函数都抓住它,所以我想在容器被启动时加载一次,然后在lambda容器的生命周期中保存该值。 但是,由于asynchronous方法getObject,这导致了一个问题,因为在运行main module.export代码时(特别是如果这是第一次运行并且正在创build容器),文件可能未被加载。 我已经使用setTimeout实现了一个解决方法,但是我想看看这个推荐的方法是什么,而且我的方法有什么问题,因为它感觉不对! 示例代码: var AWS = require('aws-sdk') var s3 = new AWS.S3(); var fileLoaded = false; var params = { Bucket: 'bucket-name', Key: 'file-name' }; s3.getObject(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else { console.log('File loaded from S3'); fileLoaded = true; } }); exports.handler = (event, context, […]

Lambda函数不执行http.get

我有一个函数,当在本地testing工作正常,但通过AWS Lambda运行似乎并没有执行HTTP get。 代码如下: function makeAPIRequest(path, responseControl, callback) { var responseString = ''; console.log("Executing makeAPIRequest to " + apiSettings.host + " and path " + path); var options = { host: apiSettings.host, path: path, method: 'GET', headers: { 'X-Auth-Token': apiSettings.token } }; http.get(options, function (res) { console.log('Status Code: ' + res.statusCode); if (res.statusCode != 200) […]

叉与亚马逊Lambdajoin

我正在尝试写一个lambda函数来触发许多小的lambdaexpression式 exports.handler = (event, context, callback) => { var AWS = require('aws-sdk'); let noOfPages = 20, currentPage = 1; var message = ''; //let payloadArray = []; while(currentPage <= noOfPages){ message = '{"first_page": '+ currentPage +', "last_page": '+ (currentPage) + ', "file_name" : "something.doc"' +'}'; console.log(message); var params = { FunctionName: 'test', InvocationType: 'Event', LogType: […]

在AWS lambda函数中使用require

我目前正在研究AWS lambda函数,如果我可以在其中使用require语句,我就可以find任何地方,这样我就可以使用其他非lambda函数。 我知道关于压缩节点模块文件夹,但这不帮我在这里,因为我不打算使用节点模块,感谢任何答案!