amazon-web-services - 如何使用AWS Lambda检查S3中的文件

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

对于 AWS Lambda 来说是全新的,所以我什至不确定这是否是完成我想要做的事情的正确工具。

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

  1. 以上可能吗?
  2. Lambda 是适合这项工作的工具吗?

我在 JavaScript 方面相当有能力,但从未使用过 Node.js 或 Python,因此编写 Lambda 函数对我来说似乎很复杂。

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

谢谢!

最佳答案

如果您了解 Javascript 并了解 NPM,这会很容易。让我为您提供使用 Node 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
     }    
  });
};

您可以从 IAM 菜单 -> 用户 -> 安全凭证 -> 创建访问 key 获取 accessKeyId。那么你也会得到secretAccessKey
希望这个回答对您有帮助。

关于amazon-web-services - 如何使用AWS Lambda检查S3中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39357879/

相关文章:

amazon-web-services - 如何获取 aws :lambda function as a text? 的 Uri

java - AWS S3 客户端竞争条件解决方案

Express.js 应用程序无服务器,使用 Lambda 或函数 - 一个好主意?

java - AWS Lambda 中的 S3 客户端初始化缓慢

amazon-web-services - 访问 index.html Amazon S3 静态网站被拒绝

java - AWS 维护 - 如何管理 Java、Tomcat 和 MySQL 的更新?

amazon-web-services - codepipeline.putJobSuccessResult() 从 VPC 调用 Lambda 时挂起

video - 将 FFmpeg 输出直接上传到 Amazon S3

android - 使用 Amazon Android API 下载文件

javascript - Amazon Alexa Skill Lambda 代码无法执行