写点什么

AWS 发布 CloudTrail 处理库

  • 2014-11-21
  • 本文字数:1417 字

    阅读完需:约 5 分钟

近日,Amazon Web Services(AWS)发布了AWS CloudTrail 处理库(CPL),这是一个“Java 客户端库,使开发人员可以更简便地构建应用程序,以一种具有容错能力和高扩展性的方式读取和处理CloudTrail 日志文件”。

AWS CloudTrail 记录了一个 AWS 账号所做的所有 API 调用,用于日志记录和审计场景,包括安全分析、更改跟踪、法规遵从性援助和运行故障排除,先前的报道对此有更详细的描述。CloudTrail 是在 re:Invent 2013 大会上推出的,经过 2014 年的扩展,已经支持所有 AWS和大部分服务

照例,AWS 提供了在自定义监控解决方案中集成CloudTrail 的 API 。不过,实现 CloudTrail 事件处理逻辑至少需要与 Amazon S3、Amazon SNS 和 CloudTrail 本身三种相关服务进行交互,同时还要考虑灵活性和容错能力,这是一项繁重的任务。

现在,这个问题已经由一个“新的 AWS SDK for Java 扩展”解决

AWS CloudTrail 处理库,或者 CPL,减少了轮询 Amazon SQS 队列、读取和分析队列消息、下载 CloudTrail 日志文件及分析和序列化事件 [……] 所需要编写的代码。开发人员最少用 10 行代码就可以读取和处理 CloudTrail 日志文件。CPL 以一种灵活且具有容错能力的方式处理瞬态和持久故障 [……]。CPL 以易于扩展的方式构建,可以并行处理任意数量的日志文件。

最小限度的集成只需要实现一个接收CloudTrail 日志数据的EventProcessor 接口:

复制代码
public class SampleEventsProcessor implements EventsProcessor {
public void process(List<cloudtrailevent> events) {
int i = 0;
for (CloudTrailEvent event : events) {
System.out.println(String.format("Process event %d : %s", i++,
event.getEventData()));
}
}
}</cloudtrailevent>

正如 Jason Fulghum 在 Java SDK 博客上的介绍性博文中所阐述的那样,事件可以在这个循环中直接过滤,而通过下面这些专用的接口可以实现更高级的应用场景:

  • EventFilter——提供一个回调接口,确定是否处理日志记录
  • EventProcessor——提供一个回调接口,传递需要处理的日志记录(如上所示)
  • ExceptionHandler——提供一个回调接口,处理日志文件处理时的异常
  • ProgressReporter——提供一个接口,自定义处理过程
  • SourceFilter——提供一个回调函数,确定是否处理日志源

EventFilter 允许开发人员根据 CloudTrailEventData 中的粒度信息有选择地处理事件,比如AWS 域、源服务甚或IP 地址、用户身份,当然还可以是像“DeleteSecurityGroup”这样的事件名。CPL 提供了所有接口的示例实现,其中包括一个只提取EC2 删除API 调用的EventFilter:

复制代码
public class SampleEventFilter implements EventFilter{
private static final String EC2_EVENTS = "ec2.amazonaws.com";
@Override
public boolean filterEvent(CloudTrailEvent event) throws CallbackException {
CloudTrailEventData eventData = event.getEventData();
String eventSource = eventData.getEventSource();
String eventName = eventData.getEventName();
return eventSource.equals(EC2_EVENTS) && eventName.startsWith("Delete");
}
}

AWS CloudTrail 处理库源码可以从GitHub 上下载。 CloudTrail 文档包含一个如何使用CPL 的章节以及 CPL API 参考。开发人员可以从 CloudTrail问题跟踪和AWS CloudTrail 论坛获得技术支持。

查看英文原文:**** AWS Releases CloudTrail Processing Library

2014-11-21 08:391889
用户头像

发布了 1008 篇内容, 共 449.4 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

Gradle Docker插件将SpringBoot应用程序打包为Docker镜像

wjchenge

Docker SpringBoot 2 Gradle

夕四今晚加班到2点30,而王二还不打算走《打工人的那些事》

谙忆

架构训练营大作业(一)

一期一会

分页方式,看这一篇就够了。

大伟

分页

产品经理训练营课后作业-第三周-产品思维和产品意识

.nil?

产品经理训练营

如何基于Spring 事件驱动模型实现业务解耦

技术进阶之路

Java spring 架构

区块链--另一场改变社会组织方式的工业革命

CECBC

区块链

最简单的map,filter,forEach,every,some的使用教学

coolFish(呔呆)

方法 Vue 大前端 数组 js

滴滴夜莺社区文章有奖征集

滴滴云

最佳实践 奖品 案例分享 滴滴夜莺

科技,亲吻这个特别的春节

脑极体

区块链在数字版权领域的应用发展报告(2020)

CECBC

版权保护

驱动力读后感之一

张老蔫

28天写作

PanoVideoCall 的 Electron Demo 开源了

拍乐云Pano

html Mac windows Electron js

架构训练营大作业(二)

一期一会

Java并发包源码学习系列:阻塞队列实现之SynchronousQueue源码解析

Java 编程

京东支付SDK重构设计与实现

京东数科风险算法与技术

用最少人力玩转万亿级数据,我用的就是MongoDB

dbaplus社群

webpack | 进阶用法2:代码分割和动态引入的实现方式

梁龙先森

大前端 webpack 28天写作 2月春节不断更

中国为什么加快推进数字人民币

CECBC

数字货币

看完字节大佬的算法刷题宝典,我直接手撕了500道算法算法题

程序员 面试 算法

产品训练营第三次作业

Geek_79e983

作业3

瑾瑾呀

欢迎来到,2021摄像机竞技场

脑极体

静默安装Oracle也没那么恐怖

MySQL从删库到跑路

oracle

硬核!八张图搞懂 Flink 端到端精准一次处理语义 Exactly-once(深入原理,建议收藏)

五分钟学大数据

大数据 flink

【LeetCode】子集问题debug模式查看数据变化

Albert

算法 LeetCode 2月春节不断更

如何基于Spring Aware和InitializingBean接口实现策略模式

技术进阶之路

Java spring 5 Java设计模式

2021最新「阿里」Java高级工程师面试高频题:JVM+Redis+并发+算法+框架

比伯

Java 编程 架构 面试 计算机

「抖音同款播放器」上市:有效解决卡顿、黑屏和模糊

字节跳动技术团队

精美的淘客项目完全开源啦,确定不来围观吗

Silently9527

Vue mybatis springboot uniapp

Varchar竟然会自动存储成lob类型?

dbaplus社群

AWS发布CloudTrail处理库_Java_Steffen Opel_InfoQ精选文章