[英]Create Thumbnails on Amazon S3 Bucket with Lambda function
S3上有两个桶。 campaignfotos和campaignfotosresized。
这两个的权限如下:
创建了ThumbnailCreatorRole(我想我在这里遗漏了一些东西):
我创建了一个Lambda函数,使用Code从这里将文件名形式“CreateThumbnail.js”更改为“index.js”。
在创建时设置触发器 - 因此,当我的应用程序的用户将图像上传到存储桶时,应创建缩略图:
当我测试该功能时,它第一次工作(使用亚马逊lambda网站上的测试按钮)但当用户从我的应用程序上传图像时它不起作用,当我在s3上传图像时它也无效在亚马逊网站上的桶。
当我尝试使用“测试”按钮第二次测试该功能时,我收到此错误(是的,我从缩略图桶中删除了旧的resized-HappyFace.jpg):
我忘记了什么?
该问题的解决方案是政策。 上述测试的时间错误可以通过将超时限制增加到25秒来解决。
如何设置策略:
转到IAM => Roles =>在附加策略中创建新角色=>角色类型=> AWS Lambda =>选择“AmazonS3FullAccess”
现在转到Lambda =>在Configuration选项卡中选择您的Lambda函数=> =>角色:选择现有角色=>选择刚刚创建的角色
完成,现在它的工作原理。 :)
为现有图像创建缩略图:
您可能在存储桶中有现有图像,您想为它们创建缩略图吗? 解决方案:创建一个新存储桶 - 转到旧存储桶并选择所有图像=>剪切。 转到新临时创建的存储桶并粘贴。 现在,在临时存储桶中再次选择所有新粘贴的图像=>剪切 - 返回旧存储桶并粘贴图像=>这会触发您的lambda函数,并为每个图像创建一个新的缩略图。 现在您可以删除临时创建的存储桶。 你完成了 :)
如果遇到困难,请转到“ 监控”选项卡 (如图所示),然后单击日志文件的链接。 他们希望能为您提供更多信息。
实际上,我建议您首先实施教程:从AWS文档中将AWS Lambda与Amazon S3配合使用 。
一旦确认它正在工作,请根据您的特定需求进行修改(例如存储桶,权限)。
或者,您可以跳过Lambda并使用自动图片大小调整服务,例如:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.