0

我正在尝试将 MSK Lambda 触发器与连接到 VPC 的 Lambda 一起使用。

但是,在部署 Lambda 时,我总是收到此错误:

Last processing result: PROBLEM: Connection error. Please check your event source connection configuration.

我试过的:

  • lambda 具有https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html中列出的所有必需权限
  • lambda 与 MSK 集群位于同一个 VPC 中,我什至部署了另一个可以在 Kafka 中成功生成消息的 lambda,具有完全相同的 VPC 配置。
  • 子网连接了一个 NAT 网关和一个互联网网关
  • 安全组允许所有端口中的所有传入/传出流量

我还能尝试什么?可能缺少什么?我正在使用来自无服务器框架的这种集成。

编辑:好的,问题出在 MSK 集群的安全组上。

文档提到您需要此规则:

入站规则 – 允许指定为源的安全组的所有端口上的所有流量。

但是有没有办法限制更多而不是允许来自任何地方的流量?

4

1 回答 1

0

我发现了这个并希望它有所帮助,它似乎与你想要完成的事情相同

新的 MSK 服务未设计为可在公共网络上使用,我们发现的解决方法可能对您不起作用,但我希望了解该服务的工作原理可能会有所帮助。

首先,我在 3 个可用区上创建了一个新的 VPC,一个具有 3 个公共子网、3 个私有子网、1 个 NatGw、3 个 InternetGw 和一个仅允许传出流量的安全组的标准 VPC。在这个 VPC 上,我创建了一个基本的 MSK 集群,没有 TLS 身份验证,10GB 磁盘空间,每个可用区上有 3 个节点,每个节点都在一个公共子网中,并分配给之前创建的安全组。

此时,15 分钟后,您将发现自己拥有一个全新的集群,如果您单击客户端详细信息按钮,您将获得连接字符串以与您的消费者/生产者客户端一起使用,以通过 TLS 或普通身份验证和 ZooKeeper 访问 Kafka . 问题是这个集群目前只能从 VPC 内部访问。

– 现在尝试使用 telnet 验证一切是否已打开 – 此时您可能会尝试连接,但 Kafka 可能会向您抛出错误,说“与集群的连接正常,但 Kafka 集群没有响应”。这是因为我们没有使用正确的名称调用 Kafka 节点。– 编辑您的主机文件并为 Kafka 集群的每个节点插入一个带有公共 IP 地址和该节点名称的条目;保存,关闭,重试。

欢迎来到您的新远程 MKS 集群

您可以在此链接中找到此内容:

https://repetitive.it/aws-msk-how-to-expose-the-cluster-on-the-public-network/

于 2020-11-25T19:58:57.927 回答