如何利用Lambda实现Dynamodb Streams跨账号(有时还要跨region)

0

【以下的问题经过翻译处理】 客户正在使用 dynamoDB 流将事件传递到 Kafka 主题。 他们想使用 lambda 来轮询流,但是消费者(在 Kubernetes 中自行管理的 kafka 集群)在不同的帐户中。 我看到从 DDB 读取的 lambda 需要在 DDB 帐户中。

作为解决方法,客户正在考虑这个 - https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.KCLAdapter.html (部署在 kubernetis 集群中的 Kafka 帐户中)但更愿意使用无服务器解决方案。

我找到了这个- https://aws.amazon.com/premiumsupport/knowledge-center/lambda-cross-account-kinesis-stream/

这是否意味着流量通过公共互联网(不需要) 是否有解决使用 VPC 对等/VPC 共享/专用链接的方法

注意 - Kafka 集群可以位于同一区域,但有时位于不同区域,因此解决方案应该同时支持两者。

profile picture
专家
已提问 5 个月前7 查看次数
1 回答
0

【以下的回答经过翻译处理】 我不认为这是正确的方法。您提到的博客讨论了从另一个帐户中的 Kinesis/DDB 流在一个帐户中触发 Lambda 函数。

我认为在您的情况下,最好的办法是在从流触发的第一个帐户 (DDB) 中使用 Lambda 函数。让这个函数在第一个账户的 VPC 中运行。将该 VPC 与第二个账户中托管 Kafka 的 VPC 对等。 Lambda 函数应该能够通过对等连接进行对话并将记录提取到 Kafka 中。

如果这两个帐户在同一个组织中,可能通过使用 VPC 共享,则无需进行 VPC 对等。我没有测试它,所以我不确定它是否有效,因为 Lambda 可以在同一账户的 VPC 中运行。不确定如何处理共享 VPC。

只是为了回答关于有两个 lambda 的问题,Lambda 函数默认在 AWS 管理的 VPC 中运行。如果那个 Lambda 试图调用另一个 Lambda,我认为它将保留在同一个 VPC 中。第二个 Lambda 将在秒账户的 VPC 中运行,因此据我所知不会有互联网流量。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则