通过 AWS Lambda 函数访问 EC2 实例服务
Posted
技术标签:
【中文标题】通过 AWS Lambda 函数访问 EC2 实例服务【英文标题】:Access EC2 Instance Service Via AWS Lambda Function 【发布时间】:2018-04-18 12:55:11 【问题描述】:我有一个只有私有 IP 的 EC2 实例,并且我已经在运行 10.0.4.44:9092
的同一个实例上安装了 Apache Kafka。
现在,我创建了 AWS Lambda 函数,它从给定的存储桶中读取文档并将文档正文发送到在 EC2 实例上运行的 Apache Kafka。
现在,AWS Lambda 无法访问 EC2 实例服务。
如何授予 Lambda 访问权限以访问 EC2 上的 Apache kafka 服务?
【问题讨论】:
添加到同一个VPC 将 Lambda 添加到 VPC?该怎么做? 【参考方案1】:您需要将 Lambda 函数添加到运行 EC2 服务器的 VPC。这是 Lambda VPC 支持的 announcement 博客文章,其中包含设置它的演练。这是official documentation。
VPC 中的 Lambda 函数不会获得公共 IP 地址。这意味着它将无法访问 VPC 之外的任何内容。由于您还需要访问 S3,因此您需要设置一个 S3 VPC Endpoint,以便您的函数仍然具有 S3 访问权限。
如果您的函数需要访问 VPC 之外的其他内容,那么您必须将其添加到附加了 NAT 网关的 VPC 的私有子网中。
【讨论】:
以上是关于通过 AWS Lambda 函数访问 EC2 实例服务的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda 无法访问同一 VPC 中的 EC2 端口