如何使用 AWS Lambda 检查 S3 中的文件
How to use AWS Lambda to check file in S3
AWS Lambda 是全新的,所以我什至不确定这是否是完成我正在尝试做的事情的正确工具。
基本上我想做的是检查文件是否存在或者最近是否在 S3 中更新过。如果该文件不存在或最近未更新,我希望将 AMI 克隆到 AWS 实例。
- 以上是否可行?
- Lambda 是适合这项工作的工具吗?
我在 JavaScript 方面相当称职,但从未使用过 node.js 或 Python,因此编写 Lambda 函数对我来说似乎很复杂。
您是否知道任何有助于构建 Lambda 函数的资源?
谢谢!
如果您了解 Javascript 并了解 NPM,这将很容易。让我给你一个简单的 node js 方法:
- 登录您的 AWS。
- 转到 AWS 控制台菜单,右上角的按钮。
- 选择 lambda,单击函数并创建新函数。
- 单击蓝色打印页面上的跳过按钮。
- 跳过配置触发页面。
- 你会看到配置功能页面,然后你可以填写功能名称,runtime使用NodeJS.4.3,选择代码类型Edit Code Inline
- 在 编辑内联代码 框的底部,您必须选择您曾经拥有的 IAM 角色。如果您没有任何 IAM 角色,请转到 AWS 控制台并选择 Identity and Access Management(IAM)、select 角色并新建它。
- 如果您已完成所有必填字段的填写,您可以单击下一步并创建 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 菜单 -> 用户 -> 安全凭证 -> 创建访问密钥中获取 accessKeyId。那么你也会得到 secretAccessKey。
希望这个回答对您有所帮助。
AWS Lambda 是全新的,所以我什至不确定这是否是完成我正在尝试做的事情的正确工具。
基本上我想做的是检查文件是否存在或者最近是否在 S3 中更新过。如果该文件不存在或最近未更新,我希望将 AMI 克隆到 AWS 实例。
- 以上是否可行?
- Lambda 是适合这项工作的工具吗?
我在 JavaScript 方面相当称职,但从未使用过 node.js 或 Python,因此编写 Lambda 函数对我来说似乎很复杂。
您是否知道任何有助于构建 Lambda 函数的资源?
谢谢!
如果您了解 Javascript 并了解 NPM,这将很容易。让我给你一个简单的 node js 方法:
- 登录您的 AWS。
- 转到 AWS 控制台菜单,右上角的按钮。
- 选择 lambda,单击函数并创建新函数。
- 单击蓝色打印页面上的跳过按钮。
- 跳过配置触发页面。
- 你会看到配置功能页面,然后你可以填写功能名称,runtime使用NodeJS.4.3,选择代码类型Edit Code Inline
- 在 编辑内联代码 框的底部,您必须选择您曾经拥有的 IAM 角色。如果您没有任何 IAM 角色,请转到 AWS 控制台并选择 Identity and Access Management(IAM)、select 角色并新建它。
- 如果您已完成所有必填字段的填写,您可以单击下一步并创建 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 菜单 -> 用户 -> 安全凭证 -> 创建访问密钥中获取 accessKeyId。那么你也会得到 secretAccessKey。
希望这个回答对您有所帮助。