我有一个只有私有IP的EC2实例,我已经在10.0.4.44:9092
上运行的同一个实例上安装了Apache Kafka。
现在,我创建了AWS Lambda函数,该函数从给定的Bucket中读取文档,并将Document body发送到在EC2 Instance上运行的Apache Kafka。
现在,AWS Lambda无法访问EC2实例服务。
如何授予访问Lambda以访问EC2上的Apache kafka服务的权限?
答案 0 :(得分:4)
您需要将Lambda函数添加到EC2服务器正在运行的VPC中。这是Lambda VPC支持的announcement博客文章,其中包含用于设置的内容。这是official documentation。
VPC中的Lambda函数无法获取公共IP地址。这意味着它无法访问VPC之外的任何内容。由于您还需要访问S3,因此您需要设置S3 VPC Endpoint,以便您的功能仍然具有S3访问权限。
如果您的功能需要访问VPC之外的其他内容,则必须将其添加到附加了NAT网关的VPC的私有子网中。