CodeBuild 找不到目标互联网网关的 0.0.0.0/0 目的地

问题描述 投票:0回答:3

我已经为此苦苦挣扎了几个小时。因此,我创建了 VPC 以及 4 个不同的子网。前三个连接到常规互联网网关。最后一个连接到 NAT 网关(以 0.0.0.0/0 作为目标)。我的 CodeBuild 项目设置为使用此 VPC 和最后一个子网。

当我在 CodeBuild 项目环境中单击“验证 VPC 设置”时,我收到此警告:

“ID 为 * 的 VPC 可能没有互联网连接。CodeBuild 找不到子网 ID 为 * 的目标互联网网关的 0.0.0.0/0 目标。”

如果我尝试运行 CodeBuild 项目,它将超时,因为它无法访问 Internet 并且无法从 CodeCommit 下载源...

我在这里缺少什么?我的子网的路由表附加到 NAT 网关,目标是 0.0.0.0/0,因此上面的错误消息对我来说没有任何意义。

谢谢!

amazon-web-services amazon-vpc nat subnet aws-codebuild
3个回答
24
投票

因此,如果其他人也遇到同样的问题,原因是我错误地将 NAT 网关放置在私有子网上而不是公共子网上。


1
投票

我遇到了同样的问题,下面是我为使其工作而应用的修复:

  1. 是的,即使我已经将私有子网映射到 NAT 网关上。因此,第一个更正是映射公共子网。
  2. 创建“互联网网关”并将其附加到创建的 VPC。
  3. 导航到创建的 VPC,并确保其映射了默认主路由表。
  4. 单击默认映射路由表,并附加在步骤2中创建的“互联网网关”。不要映射任何子网。
  5. 导航到路由表,选择私有路由表,然后映射创建的 NAT 网关和私有子网。
  6. 导航到代码构建,选择创建的 VPC、私有子网和安全组,最后单击“验证 VPC 设置”。

注意:两个路由表必须附加到同一个 VPC。

实际输出:我收到消息“ID为{{vpc-xyz}}的VPC具有互联网连接”。

有助于尝试上述步骤的参考:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-internet-connectivity/

我希望这有帮助。


0
投票

对于那些没有立即理解的人。 创建 NAT 时,您必须从 VPC 中选择一个公共网络,然后在您的私有网络上使用该 NAT。

不要忘记为您的 codeBuild 角色授予必要的权限。 https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-management-policies-example-create-vpc -网络接口

© www.soinside.com 2019 - 2024. All rights reserved.