2016-09-06 101 views
1

AWS Lambda是全新的,因此我甚至不确定这是否是完成我所要做的工作的正确工具。如何使用AWS Lambda检查S3中的文件

基本上我想要做的是检查一个文件是否存在,或者如果它最近在S3中更新。如果该文件不存在或最近未更新,我希望将AMI克隆到AWS实例。

  1. 以上可能吗?
  2. Lambda是工作的正确工具吗?

我在JavaScript上相当胜任,但从未使用node.js或Python,所以编写Lambda函数对我来说似乎很复杂。

你知道任何可以帮助构建Lambda函数的资源吗?

谢谢!

+0

是的,这是可能的,并且看起来像是使用AWS Lambda完成的完全合理的任务。尝试查看AWS提供的示例。 –

回答

2

如果您了解Javascript并了解NPM,将会很容易。让我给你简单的方法与节点js:

  1. 登录到您的AWS。
  2. 转到AWS控制台菜单,右上角的按钮。
  3. 选择lambda,点击功能并创建新功能。
  4. 点击跳过蓝色打印页面上的按钮。
  5. 跳过配置触发页面。
  6. 你会看到配置功能页面,则可以填写函数名,运行时使用NodeJS.4.3,并选择代码类型编辑代码内嵌
  7. 编辑代码内嵌盒的底部,你必须选择您曾经拥有的IAM角色。如果您没有任何IAM角色,请转至AWS控制台并选择身份和访问管理(IAM),选择角色并创建新角色。
  8. 如果您完成填写所有必填字段,则可以单击下一步并创建Lambda函数。

注:在您编辑代码行内框,请记下这个代码:

exports.handler = function(event, context, callback) { 
    var AWS = require('aws-sdk'); 
    AWS.config.update({accessKeyId: 'xxxxxxxxxxx', secretAccessKey: 'xxxxxxxxxxxxxxxxxxxx'}); 
    var s3 = new AWS.S3(); 
    var params = {Bucket: 'myBucket', Key: 'myFile.html'}; 
    s3.getObject(params, function(err, data) { 

    if (err) { 
     console.log(err, err.stack); 
     // file does not exist, do something 
    } 
    else { 
     console.log(data); 
     //file exist, do something 
    }  
    }); 
}; 

你可以得到accessKeyId从IAM菜单 - >用户 - >安全凭据 - >创建访问键。那么你也会得到secretAccessKey
希望这个答案会对你有所帮助。

+0

谢谢!现在我需要弄清楚如何让它启动AMI,但我会尽力为自己弄清楚。 – Vinny

相关问题