亚马逊网络服务(AWS)最近宣布,Amazon SNS支持Amazon Kinesis Data Firehose订阅向 "数据湖、数据存储和分析服务发送消息,而无需编写自定义代码"。这也简化了第三方服务提供商的整合。
亚马逊简单通知服务(Amazon SNS)是一项管理服务,提供从发布者到订阅者的异步消息传递,"用于应用程序到应用程序(A2A)和应用程序到个人(A2P)的通信"。它支持各种各样的AWS本地事件源,以实现高吞吐量和低延迟的事件驱动架构。
Amazon Kinesis Data Firehose是一项管理服务,用于 "准备并将实时数据流加载到数据存储和分析服务中",除了通过AWS Lambda函数进行可选的无服务器数据转换外,不需要实现任何东西。
亚马逊SNS之前支持通用的A2A事件目的地,如亚马逊SQS、AWS Lambda和SNS感知的HTTP/S端点,这需要为有更具体要求的目的地定制解决方案。AWS现在增加了一个Amazon Kinesis Data Firehose事件目的地,可以反过来将记录发送到交付流目的地,包括Amazon S3、Amazon Redshift、Amazon Elasticsearch Service以及 "你或你的任何第三方服务提供商拥有的任何HTTP终端"。再加上内置的Kinesis Data Firehose数据转换功能,这就消除了大多数自定义代码在前往这些目的地的途中 "捕获、转换、缓冲、压缩和上传数据"。
接下来概述几个现在更容易实现的使用案例。
- 通过Amazon S3目的地存储和查询SNS消息 - 在S3桶中备份和归档数据,并通过Amazon Athena使用SQL进行分析
- 通过Amazon ES目的地索引和搜索SNS消息 - 将数据发布到Amazon Elasticsearch服务,并使用Kibana对其进行探索和可视化。
- 通过Amazon Redshift目的地分析SNS消息--将数据发布到Redshift数据仓库,并使用Amazon Redshift进行SQL分析。
- 通过HTTP目的地转发SNS消息--将数据路由到自定义端点和第三方服务提供者
- 通过Kinesis Data Firehose transforms转换SNS消息--用Lambda函数处理数据,例如改编个人身份信息(PII)。
新的Kinesis Data Firehose集成支持常规的SNS功能,如dead-letter queues (DLQs) 和消息过滤,它允许 "从订阅者那里卸载消息过滤逻辑和从发布者那里卸载消息路由逻辑"。
值得注意的是,基于事件总线的Amazon EventBridge服务也提供了DLQs、内容过滤、输入转换,并具有本地事件存档和回放功能。AWS Serverless的首席开发者倡导者James Beswick在一篇关于选择消息服务的博文中承认,"SNS和EventBridge有很多相似之处"。
两者都可用于解耦发布者和订阅者,过滤消息或事件,并提供扇入或扇出功能。然而,每种服务的目标列表和功能都有区别,你对服务的选择取决于你的用例的需要。
然后,他介绍了EventBridge独有的SaaS合作伙伴事件源和模式注册表功能,并提供了详细的功能对比表。James还在随后的博文构建有弹性的无服务器模式中对结合两种服务的功能的用例进行了跟进。
在相关新闻中,Amazon SNS最近为其消息过滤能力引入了额外的运营商,同时支持十位数长码和免费号码向美国目的地发送短信,还通过以1分钟的分辨率发布指标改进了Amazon CloudWatch监控。