1

我开始怀疑在以下情况下是否需要 VPC 端点:

我有一个作为某种事件总线的 SNS 主题。不讨论这个话题,让我们走得更远。该 SNS 通过 lambda 的 AWS 无服务器事件源链接到 SQS。你知道的,比如:

FoobarEvent:
  Type: SNS
  Properties:
    Topic: !Ref Topic
    SqsSubscription: true

就是这样。所以我让sam创建 SQS 来对推送到 SNS 的消息进行排队。现在,说到重点。Lambda 本身被配置为留在私有子网内。

VpcConfig:
  SecurityGroupIds: [...]
  SubnetIds: [...]

所以很自然,我希望 SNS 和 SQS 服务中的一个或两个都需要一个 VPC 接口。但!?:

  1. 真的是这样吗?
  2. 如果我不定义端点但仍然有 NAT,它们甚至会被使用吗?
  3. 如果我既没有端点也没有 NAT,这仍然有效吗?

我在问,因为需要 SNS 端点从私有 lambda 推送到它或 SQS 端点分别推送到那个是有意义的。但是,我无法理解背景中发生的事情?Lambda 在指定队列上按时间间隔轮询。但如果它在私有子网中,它如何到达该队列?SNS 或 SQS 如何相互联系?

4

1 回答 1

2

真的是这样吗?

根据评论中的额外信息,您无需在 VPC 中使用 SNS 或 SQS 端点。

如果我不定义端点但仍然有 NAT,它们甚至会被使用吗?

如果您的 lambda 函数不需要调用外部 API 或访问 Internet,则也不需要 NAT。

如果我既没有端点也没有 NAT,这仍然有效吗?

是的,除非您的函数需要访问 Internet 以访问外部 API 或调用其他一些 AWS 服务。

于 2020-10-21T21:45:10.987 回答