0

语境:

我有以下网络设置(简化)用于在 VPC 中运行 lambda:

  • 具有 IGW 和 NAT 的公共子网
  • 我的 lambda 在其中执行的私有子网
  • 用于访问 S3 存储桶的 S3 VPC 终端节点

我可以在我的 VPC 中执行 lambda 并观察正确的行为。我可以访问公共互联网,并使用我的 NAT 的 EIP 进行呼叫。

我使用 lambda 调用 Snowflake DWH 并且可以正确地将我的 lambda IP 列入白名单。

现在我在我的 VPC 和 Snowflake VPC 之间进行了 PrivateLink 设置。不同的单独步骤(设置 VPC 接口、托管区域、CNAMES)似乎有效。

如果我通过我的 Lambda 使用专用 PrivateLink URL 执行调用,我会正确地看到在我的 VPC 的 CIDR IP 范围之外执行的调用。

问题:

似乎仍然需要 NAT 才能使 lambda 工作。如果我删除它,则 lambda 开始超时。我不懂为什么。我的 lambda 没有执行公共互联网呼叫。只有对 Snowflake 和 S3 的调用,它们现在都设置了 VPC 端点。如前所述,我看到来自预期 IP 范围的调用。

在成功建立 VPC 之间的 PrivateLink 之后,我假设(由文档和 PrivateLink 使用背后的一般理性支持)不再需要 NAT。

问题:

任何人都可以确认:不再需要 NAT 吗?任何人都可以提供假设为什么它在我的情况下可能无法按预期工作吗?

我现在多次查看设置指南,一切似乎都正确完成。如前所述,呼叫似乎通过正确的路线进行,但我仍然想了解为什么 NAT 行为与我预期的不同。

4

0 回答 0