BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

AWS发布CloudTrail处理库

| 作者 Steffen Opel 关注 3 他的粉丝 ,译者 谢丽 关注 9 他的粉丝 发布于 2014年11月22日. 估计阅读时间: 6 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

近日,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 events) {
        int i = 0;
        for (CloudTrailEvent event : events) {
            System.out.println(String.format("Process event %d : %s", i++, 
                event.getEventData()));
        }
    }
}

正如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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT