amazon-web-services - AWS Elastic Beanstalk 无法访问 AWS MSK

标签 amazon-web-services apache-kafka aws-lambda amazon-elastic-beanstalk amazon-vpc

我有一个在具有 3 个子网的 VPC 内运行的 AWS MSK 集群。

当我创建我的 Elastic Beanstalk (Java) 环境时,它要求 VPC,我配置了运行 MSK 集群的相同 VPC。我还在我的 Elastic Beanstalk 网络配置中选择了所有三个列出的子集。我没有分配公共(public) IP,因为我不需要从 Internet 访问 Elastic Beanstalk 实例。

我还在安全配置下为我的 Elastic Beanstalk 环境选择的 IAM 实例配置文件分配了 AWS MSK 完全访问权限。为了信息的完整性,我选择了 AWSServiceRoleForElasticBeanstalk 作为服务角色。

附带说明一下,当我配置 Lambda 以访问 MSK 集群时,它明确要求我提供 VPC 和安全组。但是在 Elastic Beanstalk 的情况下,我看不到安全组的任何此类配置选项。我在这里忽略了什么吗?我的 Lambda 能够成功访问 MSK 集群。

我不明白为什么我的 Elastic Beanstalk 实例无法访问我的 AWS MSK 集群。我错过了什么吗?

最佳答案

在 AWS Support 的帮助下,我能够解决这个问题。

首先,您可以在“实例”配置卡下配置安全组。

但是,这让我有点困惑,因为 VPC 和子网位于“网络”配置卡下,它堆叠在“实例”配置卡之后。 “实例”下列出的安全组直接取决于“网络”下选择的 VPC 和子网。如果您更改了“网络”中的选择,那么您也应该更新/查看“实例”下的安全组选择。

因此,就我而言,首先我在“网络”下选择我的目标 VPC 和相关子网,然后我才能在“实例”下看到我的目标安全组。

关于amazon-web-services - AWS Elastic Beanstalk 无法访问 AWS MSK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56123755/

相关文章:

amazon-web-services - 在 AWS 上测试 Lambda 函数时遇到问题

java - 如何防止 AWS Lambda 从 SQS 队列中删除消息

amazon-web-services - AWS CloudFormation 用户数据

python - 返回 header 内容 - API 网关 + AWS Lambda

amazon-web-services - AccessDenied 根据策略无效 : Policy Condition failed: ["starts-with", "$key", "2017/"]

java - Apache Kafka Java 生产者 Scala 消费者缺少流

json - JSONConverter 的 Kafka Connect 架构格式

apache-kafka - Spring Kafka 消费者无法消费记录

amazon-web-services - AWS lambda 创建函数只接受一个环境变量

amazon-web-services - AWS ECS 跨多个实例处理 DNS 子域