如何使用AWS Lambda检查S3中的文件
问题描述:
AWS Lambda是全新的,因此我甚至不确定这是否是完成我所要做的工作的正确工具。如何使用AWS Lambda检查S3中的文件
基本上我想要做的是检查一个文件是否存在,或者如果它最近在S3中更新。如果该文件不存在或最近未更新,我希望将AMI克隆到AWS实例。
- 以上可能吗?
- Lambda是工作的正确工具吗?
我在JavaScript上相当胜任,但从未使用node.js或Python,所以编写Lambda函数对我来说似乎很复杂。
你知道任何可以帮助构建Lambda函数的资源吗?
谢谢!
答
如果您了解Javascript并了解NPM,将会很容易。让我给你简单的方法与节点js:
- 登录到您的AWS。
- 转到AWS控制台菜单,右上角的按钮。
- 选择lambda,点击功能并创建新功能。
- 点击跳过蓝色打印页面上的按钮。
- 跳过配置触发页面。
- 你会看到配置功能页面,则可以填写函数名,运行时使用NodeJS.4.3,并选择代码类型编辑代码内嵌
- 从编辑代码内嵌盒的底部,你必须选择您曾经拥有的IAM角色。如果您没有任何IAM角色,请转至AWS控制台并选择身份和访问管理(IAM),选择角色并创建新角色。
- 如果您完成填写所有必填字段,则可以单击下一步并创建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
是的,这是可能的,并且看起来像是使用AWS Lambda完成的完全合理的任务。尝试查看AWS提供的示例。 –