Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用AWS Lambda检查S3中的文件_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

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

Amazon web services 如何使用AWS Lambda检查S3中的文件,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,AWS Lambda是全新的,所以我甚至不确定这是否是实现我尝试的目标的正确工具 基本上,我要做的是检查一个文件是否存在,或者它是否最近在S3中更新过。如果该文件不存在或最近没有更新,我希望将AMI克隆到AWS实例 上述情况是否可能 Lambda是这项工作的合适工具吗 我精通JavaScript,但从未使用过node.js或Python,因此编写Lambda函数对我来说似乎很复杂 您知道有哪些资源可以帮助构建Lambda函数吗 谢谢 如果您了解Javascript和NPM,这将很容易。让我为您介

AWS Lambda是全新的,所以我甚至不确定这是否是实现我尝试的目标的正确工具

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

  • 上述情况是否可能
  • Lambda是这项工作的合适工具吗
  • 我精通JavaScript,但从未使用过node.js或Python,因此编写Lambda函数对我来说似乎很复杂

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


    谢谢

    如果您了解Javascript和NPM,这将很容易。让我为您介绍一下使用node js的简单方法:

  • 登录到您的AWS
  • 转到AWS控制台菜单,按钮位于右上角
  • 选择lambda,单击函数并创建新函数
  • 单击蓝图页面上的跳过按钮
  • 跳过配置触发页面
  • 您将看到配置功能页面,然后您可以填写功能名称,运行时使用NodeJS.4.3,并选择代码类型编辑代码内联
  • 编辑代码内联框的底部,您必须选择您曾经拥有的IAM角色。如果您没有任何IAM角色,请转到AWS控制台并选择身份和访问管理(IAM),选择角色并新建
  • 如果您有finish fill all字段必填项,则可以单击next并创建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菜单->用户->安全凭据->创建访问密钥中获取访问密钥ID。然后您也将获得secretAccessKey

    希望这个答案能对您有所帮助。

    是的,这是可能的,而且似乎是使用AWS Lambda完成的一项完全合理的任务。请看AWS提供的示例。谢谢!现在我需要弄清楚如何让它启动一个AMI,但我会试着自己弄清楚。