AWS Lambda实例
AWS Lambda实例
Lambda实例
AWS Lambda是什么?Lambda 是一种计算服务(无服务函数),使您无需预置或管理服务器即可运行代码。(仅需上传即可运行,并会根据需求进行扩展。是事件驱动的)
※为了让Lambda代码执行的话,可以设置一些触发器。(CloudWatch事件,S3存储桶)
Lambda 在高可用性计算基础设施上运行您的代码,并执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量配置和自动扩展、代码监控和日志记录。
优点:不需要管理服务器和操作系统,价格优惠,支持多种编程语言。
实际操作步骤
1.创建S3存储桶&IAM策略,角色
目的:创建IAM策略(JSON),根据这个策略做一个IAM角色,创建Lambda无服务函数时使用该角色让其有访问S3存储桶的权限
①创建2个S3存储桶(数据源存储桶,目标存储桶)→对象所有权,公有访问设置保持默认→创建(保存存储桶ARN)
②创建IAM策略,写入以下JSON命令
{
"Version": "2012-10-17", "Statement": [ {
"Effect":"Allow", "Action":[ "s3:GetObject"
], "Resource":[ "数据源S3存储桶ARN /*"
] }, { "Effect":"Allow",
"Action":[ "s3:PutObject" ],
"Resource":[ "目标S3存储桶ARN/*" ] } ]}
→输入详细信息,摘要部分会显示S3访问级别,限制:读取,写入 →创建策略
③创建IAM角色→产品为AWS产品,案例为Lambda→权限策略选择刚刚创建的 →创建角色
2.创建Lambda无服务函数
①从头开始创作→运行时代码(支持很多编程语言)选择Node.js→更改默认执行角色,选择使用现有角色(刚刚创建的)→创建函数
②将原有代码删除写入以下代码
var
AWS = require("aws-sdk");exports.handler = (event, context, callback)
=> { var s3 = new AWS.S3(); var sourceBucket = "这里填数据源存储桶名称";
var destinationBucket = "这里填目标存储桶名称"; var objectKey =
event.Records[0].s3.object.key; var copySource =
encodeURI(sourceBucket + "/" + objectKey); var copyParams = { Bucket:
destinationBucket, CopySource: copySource, Key: objectKey };
s3.copyObject(copyParams, function(err, data) { if (err) {
console.log(err, err.stack); } else {
console.log("S3 object copy successful."); } });};
→部署代码
③添加触发器(使我们上传至数据源存储桶的文件去触发Lambda函数,Lambda函数便会运行Note.js的代码,使文件上传至目标存储桶内)
→选择S3,存储桶选择数据源存储桶,事件类型选择所有对象创建事件(存储桶任意事件都会触发Lambda函数)
④向数据源存储桶内上传文件→查看目标存储桶
结果:在数据源存储桶内上传文件,便会通过触发器触发启动Lambda函数从而使目标存储桶内也出现相同的文件。
文章来自:http://lalapodo.com



浙公网安备 33010602011771号