找不到子网ID的S3端点或NAT网关。

25

我无法将 AWS Glue 与 RDS 连接

VPC S3 endpoint validation failed for SubnetId: subnet-7e8a2. VPC: vpc-4d2d25. 
Reason: Could not find S3 endpoint or NAT gateway for subnetId: subnet-7ea32 in Vpc vpc-4d225.

欢迎来到StackOverflow!为了我们能够协助您解决问题,您需要提供更多信息。例如,您想要实现什么目标?您做了什么导致出现这个错误?您能详细说明您所采取的确切步骤吗?请随意编辑问题并提供更多细节。 - John Rotenstein
6个回答

23

4
这是正确的答案。一旦你创建了端点,请注意路由表不会自动创建!你必须手动添加它们,并且如果想要的话可以继承VPC使用的路由表。 - Ryanman
@Ryanman,您能具体说明一下我需要在路由表中添加什么吗? - Manza
2
@Manza 你很幸运,我保存了一年以上的笔记!你为S3存储桶创建的端点具有路由表。它们可以继承你为Glue创建的VPC的路由表,尽管你也可以只使用单个子网的范围。 - Ryanman

7
我犯了一个错误,是我为Glue设置了终端节点而非S3。检查你的VPC终端节点,确保它是为S3创建的。

2

以下方法解决了我的问题:

https://aws.amazon.com/premiumsupport/knowledge-center/glue-s3-endpoint-validation-failed/

如何解决 AWS Glue 出现的“VPC S3 端点验证失败(SubnetId)”错误?

当以下条件为真时,会出现此错误:

  • 您正在使用 AWS Glue 连接执行 AWS Glue 作业或 AWS Glue 爬虫。
  • 为 AWS Glue 连接配置的子网没有 Amazon Simple Storage Service (Amazon S3) 虚拟私有云 (VPC) 网关端点或 NAT 网关设置。

设置 S3 VPC 网关端点

要设置 S3 VPC 网关端点,请执行以下操作:

  1. 打开 Amazon VPC 控制台。
  2. 在导航窗格中,选择“端点”。
  3. 选择“创建端点”。
  4. 对于“服务名称”,选择 com.amazonaws.us-east-1.s3。确保“类型”列指示为网关。 注意:请务必将 us-east-1 替换为您选择的 AWS 区域。
  5. 对于“VPC”,请选择要创建端点的 VPC。
  6. 对于“配置路由表”,将路由到 S3 VPC 端点的路由自动添加。
  7. 对于“策略”,您可以保留默认选项“完全访问权限”。
  8. 选择“创建端点”。

如果您在路由表方面遇到问题,请参阅此评论 - user1717828

0
即使按照@Dave Albert的解决方案,我仍然没有成功。
关键是:路由表没有更新,请按照以下步骤更新路由表:
  1. 选择相应的终端节点
  2. 操作 > 点击管理路由表
  3. 选择正确的路由表ID的复选框 > 点击修改路由表

0

可能的原因之一是您的子网未关联正确的路由表。

确保 S3 的 VPC 终端点的路由表包含前缀列表,并将其关联到为 AWS Glue 连接配置的子网。您可以检查此项以确保适当的子网列在下窗格的“路由表”选项卡中的“关联 ID”列中。如果您没有看到所需的子网,则可以通过单击顶部的“操作”按钮并从下拉列表中选择“管理路由表”来更新它。


-4

S3 VPC端点对于AWS Glue不是必需的。在创建爬虫时,您可以选择定义连接,或者将此部分留空即可正常工作。如果您添加了连接但未进行正确设置,则可能会出现您提到的错误。请参见截图。

注意:上述语句适用于S3数据存储。如果您需要爬取RDS数据库,则需要连接。根据您的错误消息,我假设您使用S3作为数据存储。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接