bah*_*dir 5 architecture lambda amazon-s3 amazon-web-services amazon-kinesis
我创建了一个 AWS Firehose 端点(可能会更改为简单的 Kinesis),它从生产者接收日志并将它们保存到 S3 存储桶和一个使用数据、处理数据并将输出保存到数据库的 lambda 函数。
一切正常。现在我正计划为整个结构创建一个登台和开发流程。当我发布新版本时,我无法立即替换整个生产者,因此我需要保留旧的生产版本,直到没有生产者离开 - 因为我可能会对新版本进行破坏性的协议更改。
我不确定使用 kinesis 和 lambda 创建版本化系统的最佳方法是什么。我是否应该为新版本(包括开发和暂存)复制整个结构并让生产者写入特定版本的流?
或者我应该创建一个 mid lambda 函数来检查数据包(包含它们的版本信息)并将事件输出到具有版本化文件夹的特定 s3?这样 lambda 函数将只消耗它们知道的数据。这将让我使用对 lambda 函数的版本控制支持。
这是第一个想法的结构图像
这是第二个结构
我想知道哪个是更好的解决方案,或者有更好的方法来实现这一目标
首先,可以使用 Kinesis 直接触发 Lambda,无需 Kinesis Firehose 或 S3。
其次,您的问题实际上可以归结为:每个版本是否需要单独的 Kinesis+Lambda 管道。我会采用以下解决方案:
与每个版本一个 Kinesis+Lambda 管道相比,上述方法的优点:
当然,将Dev和Prod管道分开,以尽量减少前者的坏代码的传播半径。
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |