

AWS App Runner 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS App Runner 可用性变更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 当服务无法连接到 Amazon RDS 或下游服务时
<a name="troubleshooting.vpc-outbound-connect-failure"></a>

如果您的服务无法连接到 Amazon RDS 数据库或其他下游应用程序或服务，则可能存在网络配置问题。本主题将引导您完成一些步骤，以确定您的网络配置是否存在问题，以及纠正这些问题的选项。要了解有关 App Runner 出站流量配置的更多信息，请参阅[为出站流量启用 VPC 访问权限](network-vpc.md)。

**注意**  
要查看您的 VPC 连接器配置，请从 App Runner 控制台的左侧导航窗格中选择**网络配置**。然后选择 “**传出流量**” 选项卡。选择一个 VPC 连接器。下一页显示有关 VPC 连接器的详细信息。在此页面中，您可以查看和深入了解以下内容：使用 VPC 的**子网**、**安全组**和 **App Runner 服务**。

**缩小应用程序无法连接到其他下游服务的原因**

1. 确保 VPC 连接器中使用的子网是私有子网。如果连接器配置了公有子网，则您的服务将遇到错误，因为每个子网的底层 Hyperplane ENIs （弹性网络接口）没有公有 IP 空间。

   如果您的 VPC 连接器使用公有子网，则可以使用以下选项来更正此配置：

   1. 创建一个新的私有子网，并使用它来代替 VPC 连接器的公有子网。有关更多信息，请参阅 Amazon [VPC 用户指南中的您的 VPC 的子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)。

   1. 通过 NAT 网关路由现有的公有子网。有关更多信息，请参阅 [Amazon VPC 用户指南中的 NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。

1. 验证 VPC 连接器的安全组入口和出口规则是否正确。在 App Runner 控制台的左侧导航窗格中，选择**网络配置** > **传出流量**。从列表中选择 VPC 连接器。下一页列出了您可以选择检查**的安全组**。

1. 验证您尝试连接的 RDS 实例或其他下游服务的安全组入站和出站规则是否正确。有关更多信息，请参阅 App Runner 应用程序尝试连接的下游服务的服务指南。

1. 要确认您的 App Runner 配置之外没有其他类型的网络设置问题，请尝试连接到 App Runner 之外的 RDS 或下游服务：

   1. 尝试从同一 VPC 中的 Amazon EC2 实例连接到 RDS 实例或服务。

   1. 如果您正在尝试连接到服务 VPC 终端节点，请通过从同一 VPC 中的 EC2 实例访问相同的终端节点来验证连接。

1. 如果*第 4 步*中的任何一项连接测试失败，则很可能您的 AWS账户中存在其他资源的 App Runner 配置之外存在问题。请联系 Su AWS pport 寻求帮助，以进一步隔离和修复其他网络配置的问题。

1. 如果您按照*步骤 4* 中的说明成功连接到 RDS 实例或下游服务，请按照此步骤中的说明继续操作。我们将通过启用和检查 Hyperplane ENI 流量日志来检查流量是否正在进入 ENI。
**注意**  
为了能够完成这些步骤并获得所需的 ENI 流日志信息，必须在 App Runner 服务成功启动后尝试连接 RDS 或下游服务。当 RDS 或下游服务处于 “运行” 状态时，您的应用程序必须执行与 RDS 或下游服务的连接操作。否则， ENIs 可以将其作为 App Runner 回滚工作流程的一部分进行清理。这种方法可确保其 ENIs余人员可供进一步调查。

   1.  从 AWS 控制台启动 EC2 控制台。

   1.  在左侧导航窗格的 “**网络和安全**” 分组中，选择 “**网络接口**”。

   1. 滚动到**接口类型**和**描述**列， ENIs 在与 VPC 连接器关联的子网中找到。它们将具有以下命名模式。
      + **接口类型：*far* gate**
      + **描述：**以 *AWSAppRunner ENI*（示例：*AWSAppRunner ENI - abcde123-abcd-1234-1234-abcde1233456*）开头

   1. 使用各行开头的复选框选择适 ENIs 用的内容。

   1. 从 “**操作**” 菜单中选择 “**创建流日志**”。

   1. 在提示中输入信息，然后选择页面底部的**创建流日志**。

   1. 检查生成的流日志。
      + 如果您在测试连接时流量正在进入 ENI，则问题与 ENI 设置无关。除了 App Runner 服务之外，您的 AWS 账户中的其他资源可能存在网络配置问题。如需进一步帮助，请联系 AWS Support。
      + 如果您在测试连接时流量没有进入 ENI，我们建议您联系 Support 以查看 Fargate AWS 服务是否存在任何已知问题。

   1. 使用网络 *Reach* ability Analyzer 工具。当无法访问虚拟网络路径中的源时，此工具可识别阻塞组件，从而帮助确定网络配置错误。有关更多信息，请参阅[什么是 Reach](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) ability Analyzer？ 在《*亚马逊 VPC Reach* ability Analyzer 指南》中。

      输入 App Runner ENI 作为源，输入 RDS ENI 作为目的地。

1. 如果您无法进一步缩小问题范围，或者在完成前面的步骤后仍然无法连接到 RDS 或下游服务，我们建议您联系 Su AWS pport 寻求进一步帮助。