有人能告诉我当它们都在同一个 VPC 中时,我的 Lambda 函数如何/为何无法“看到”由 Apache 在 EC2 实例上提供服务的网站吗?
我的设置:
默认 VPC 中的 Amazon Linux v2 Lambda 函数与 EC2 实例所在的 Lambda 函数相同,使用“默认”即所有权限角色来访问 EC2 实例 Apache 安装并在弹性 IP 地址上正确运行,公开提供 API 和网站服务
我知道,如果我选择在 VPC 中使用 Lambda 函数,互联网访问将被删除,因此我无法再使用 mydomain.com 访问网站,这没问题。长期来看,我将迁移到具有公共和私有子网的 VPC,并配置 Lambda 函数可以使用的互联网网关,但现在我只是想知道为什么没有互联网网关就无法使用 EC2 托管的网站。Lambda 函数肯定应该能够连接到 EC2 网站?
我尝试使用 EC2 实例的私有和公共 IP 地址,但在尝试连接 Apache 时均超时。
任何帮助都感激不尽!
谢谢。
PS:我是 AWS 新手,所以请多包涵 :)
答案1
是否Lambda 安全组允许出站访问?请尝试开放所有出站至 0.0.0.0/0 以开始。
是否EC2 安全组允许来自 Lambda 的 SG 的入站访问吗?
答案2
抱歉,我发现了这个问题 - 虽然我并不完全理解它。与 AWS 无关 - 我的 API URL 上仍然有 https。将其更改为 http 后,它工作正常。显然,如果我在 VPC 中,那么我无论如何都不需要 https。
感谢您的回答@MLu - 是的,我已经检查过这两者并且它们都没有问题。