如何使用AWS Lambda检查S3

时间:2016-09-06 21:09:06

标签: amazon-web-services amazon-s3 aws-lambda

AWS Lambda全新,所以我甚至不确定这是否是完成我尝试做的正确工具。

基本上我尝试做的是检查文件是否存在或者最近是否在S3中更新过。如果该文件最近没有或者没有更新,我希望将AMI克隆到AWS实例。

  1. 以上可能吗?
  2. Lambda是否适合这份工作?
  3. 我在JavaScript方面相当称职,但从未使用过node.js或Python,所以写一个Lambda函数对我来说似乎很复杂。

    您知道有哪些资源可以帮助构建Lambda函数吗?

    谢谢!

1 个答案:

答案 0 :(得分:2)

如果您了解Javascript并了解NPM,那将会很容易。让我简单介绍一下node js:

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

    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
         }    
      });
    };
    

    您可以从IAM菜单中获取 accessKeyId - >用户 - >安全证书 - >创建访问密钥。然后你也会得到 secretAccessKey
    希望这个答案对你有帮助。