SNS -> SQS -> Lambda(在 VPC 内)是否需要 VPCEndpoint 才能读取数据?
Does SNS -> SQS -> Lambda (inside VPC) require VPCEndpoint to READ data?
我开始怀疑在以下情况下是否需要 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 接口。
但是!?:
- 真的是这样吗?
- 如果我不定义端点但仍然有 NAT,这些还会被使用吗?
- 如果我既没有端点也没有 NAT,这仍然有效吗?
我在问,因为需要 SNS 端点从私有 lambda 推送到它或 SQS 端点分别推送到它是有意义的。不过,我无法理解后台发生了什么? Lambda 在指定队列上按时间间隔轮询。但是如果它在私有子网中,它是如何到达那个队列的呢? SNS 或 SQS 如何相互联系?
Is that really so?
根据评论中的额外信息,您不需要在 VPC 中使用 SNS 或 SQS enpoints。
If I won't define endpoints but still have NATs will those be even used?
如果您的 lambda 函数不需要调用外部 APIs 或访问互联网,也不需要 NAT。
If I will have neither endpoints nor NATs will this still work?
是的,除非您的函数需要访问互联网以访问外部 API 或调用其他一些 AWS 服务。
我开始怀疑在以下情况下是否需要 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 接口。 但是!?:
- 真的是这样吗?
- 如果我不定义端点但仍然有 NAT,这些还会被使用吗?
- 如果我既没有端点也没有 NAT,这仍然有效吗?
我在问,因为需要 SNS 端点从私有 lambda 推送到它或 SQS 端点分别推送到它是有意义的。不过,我无法理解后台发生了什么? Lambda 在指定队列上按时间间隔轮询。但是如果它在私有子网中,它是如何到达那个队列的呢? SNS 或 SQS 如何相互联系?
Is that really so?
根据评论中的额外信息,您不需要在 VPC 中使用 SNS 或 SQS enpoints。
If I won't define endpoints but still have NATs will those be even used?
如果您的 lambda 函数不需要调用外部 APIs 或访问互联网,也不需要 NAT。
If I will have neither endpoints nor NATs will this still work?
是的,除非您的函数需要访问互联网以访问外部 API 或调用其他一些 AWS 服务。