AWS推出S3 Object Lambda服务

对象存储服务AWS S3现在提供额外的对象处理功能,正式发布S3 Object Lambda,这项新功能可以让用户添加程序代码,来处理S3检索的资料,并将处理后的结果回传给应用程序。S3 Object Lambda可直接和现有的应用程序集成使用,因为该服务使用标准S3 GET请求,内联触发Lambda函数,因此用户不需要更改应用程序代码。

AWS提到,用户将资料存储在S3中,可以简单地对多个应用程序共享资料,但是每个应用程序都有自己的要求,可能需要不同的资料查看表,像是包含个人可识别信息的电子商务应用程序资料集在进行资料分析前,必须将这些可识别资料删除,另外,在将相同资料用于营销活动时,还可能需要客户忠诚度数据库中的详细资料。

为了满足不同应用程序的需求,目前有两种选择,用户可以通过创建、存储和维护衍生资料副本,让每个人信息料都拥有各自的自定义资料集,第二种选择则是用户可以在S3服务之前,创建一个代理程序,用来拦截和处理资料请求,但这两种方法都增加了取用资料的复杂性和成本。

因此AWS将S3结合无服务器运算服务AWS Lambda来解决这个问题,S3 Object Lambda可以直接让用户撰写Lambda函数,对S3检索的资料进行额外的处理,如此同一资料集,就能呈现多种查看表,并且用户可以随时更新Lambda函数,修改这些查看表。

S3 Object Lambda可用于多种场景,除了编辑个人可识别信息,也可以用于转换资料格式,像是将XML转换为JSON,或是对下载的资料进行压缩或解压缩处理,也能自定义访问资料的授权规则。

要使用S3 Object Lambda功能很简单,用户可以创建一个处理资料的Lambda函数,并在S3控制台创建S3 Object Lambda访问点,选择所创建的Lambda函数,并且使S3 Object Lambda可以访问原始对象,接着用户只要更新应用程序配置,就可以使用新的S3 Object Lambda访问点从S3检索资料。

目前商业地区除了亚太大阪、中国北京和中国宁夏,S3 Object已经可以在所有AWS地区提供服务,用户可以使用AWS管理控制台、AWS CLI和AWS SDK使用S3 Object Lambda功能,但是目前AWS CLI高端S3指令,像是aws s3 cp,仍不支持来自S3 Object Lambda访问点的对象,不过可以使用低端S3 API命令,像是aws s3api get-object。