子网内的 Lambda 如何访问 VPC 终端节点?

问题描述

我在 VPC 中有一个 lambda 函数可以轮换 rds 密码。 当我使用秘密管理器 vpc 端点测试 lambda 函数时,如下所示:

  • 案例 1. 公有子网中的 Lambda - VPC 端点附加公有子网 => 轮换正常
  • 案例 2. 私有子网中的 Lambda - VPC 终端节点附加公有子网 => 尽管 cloudwatch 有一个错误,但轮换是可以的。
  • 案例 3. 公有子网中的 Lambda - VPC 端点与私有子网 连接 => 由于 lambda 函数超时而导致轮换失败
  • 案例 4. 私有子网中的 Lambda - VPC 端点附加私有子网 => 轮换正常

我知道我不应该将 lambda 函数放入公共子网,但我想知道子网中的 lambda 函数如何与 vpc 端点配合使用。

谁能解释为什么 情况 2 没问题,尽管 lambda 和 vpc 端点位于不同的子网中。

解决方法

为什么情况 2 没问题

VPC interface endpoints 具有 vpc 范围,而不是子网范围。这解释了为什么情况 2,1 和 4 有效。因此,情况 3 也应该有效。因此,问题是为什么情况 3 不起作用?

可能的原因是您在测试中犯了一些配置错误(例如错误的安全组),或者将 lambda 放入错误的 VPC,没有为终端节点启用私有 DNS。因此,我建议仔细检查案例 3 的所有配置并重新运行实验。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...