

AWS App Runner 从 2026 年 4 月 30 日起，将不再向新客户开放。如果您想使用 App Runner，请在该日期之前注册。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS App Runner 可用性变更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# 管理 App Runner 服务的自定义域名
<a name="manage-custom-domains"></a>

创建 AWS App Runner 服务时，App Runner 会为其分配一个域名。这是 App Runner 拥有的`awsapprunner.com`域中的一个子域名。您可以使用域名来访问您的服务中运行的 Web 应用程序。

**注意**  
[为了增强 App Runner 应用程序的安全性，*\$1.awsapprunner.com* 域已在公共后缀列表 (PSL) 中注册。](https://publicsuffix.org/)为了进一步提高安全性，如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie，我们建议您使用带`__Host-`前缀的 Cookie。这将有助于保护您的域，防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息，请参阅 Mozilla 开发者网络中的 [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 页面。

如果您拥有域名，则可以将其关联到您的 App Runner 服务。App Runner 验证您的新域名后，除了 App Runner 域之外，您还可以使用您的域名来访问您的应用程序。您最多可以关联五个自定义域名。

**注意**  
您可以选择添加域名的`www`子域名。但是，目前只有 API 支持此功能。App Runner 控制台不支持包含您的`www`域名的子域名。

**注意**  
AWS App Runner 不支持使用 Route 53 私有托管区域。私有托管区域可为 Amazon VPC 流量自定义域名解析。有关私有托管区域的更多信息，请参阅 Route 53 文档中的[使用私有托管区域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

## 将自定义域名与您的服务关联（链接）
<a name="manage-custom-domains.associate-custom-domain"></a>

将自定义域与服务关联时，必须将 CNAME 记录和 DNS 目标记录添加到您的 DNS 服务器。以下各节提供有关 CNAME 记录和 DNS 目标记录以及如何使用它们的信息。

**注意**  
如果您使用 Amazon Route 53 作为 DNS 提供商，App Runner 会自动为您的自定义域配置所需的证书验证和 DNS 记录，以链接到您的 App Runner 网络应用程序。当您使用 App Runner 控制台将自定义域名链接到您的服务时，就会发生这种情况。以下[管理自定义域名](#manage-custom-domains.manage)主题提供了更多信息。

### CNAME 记录
<a name="manage-custom-domains.cname-records"></a>

当您将自定义域与服务关联时，App Runner 会为您提供一组用于证书验证的证书验证记录。您必须将这些证书验证记录添加到您的域名系统 (DNS) 服务器。将 App Runner 提供的证书验证记录添加到您的 DNS 服务器。这样，App Runner 就可以验证您是否拥有或控制该域名。

**注意**  
要自动续订自定义域名证书，请确保不要从 DNS 服务器中删除证书验证记录。有关如何解决与证书续订相关的问题的信息，请参阅[续订自定义域名证书](manage-custom-domain-troubleshoot.md#certificate-renewal.troubleshoot)。

App Runner 使用 ACM 来验证域。如果您在 DNS 记录中使用 CAA 记录，请确保至少有一条 CAA 记录引用。`amazon.com`否则，ACM 无法验证域名并成功创建您的域。

如果您收到与 CAA 相关的错误，请查看以下链接以了解如何解决这些错误：
+  [证书颁发机构授权 (CAA) 问题](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-caa.html) 
+  [如何解决在颁发或续订 ACM 证书时出现的 CAA 错误？](https://aws.amazon.com/premiumsupport/knowledge-center/acm-troubleshoot-caa-errors/) 
+  [自定义域名](manage-custom-domain-troubleshoot.md) 

**注意**  
如果您使用 Amazon Route 53 作为 DNS 提供商，App Runner 会自动为您的自定义域配置所需的证书验证和 DNS 记录，以链接到您的 App Runner 网络应用程序。当您使用 App Runner 控制台将自定义域名链接到您的服务时，就会发生这种情况。以下[管理自定义域名](#manage-custom-domains.manage)主题提供了更多信息。

### DNS 目标记录
<a name="manage-custom-domains.DNS-target"></a>

将 DNS 目标记录添加到您的 DNS 服务器以定向 App Runner 域。如果您选择此选项，则为自定义域名添加一条记录，为`www`子域添加另一条记录。然后，在 App Runner 控制台中等待自定义域名状态变为 “**激活**”。这通常需要几分钟，但可能最多需要 24-48 小时（1—2 天）。当您的自定义域名通过验证后，App Runner 会开始将流量从该域路由到您的 Web 应用程序。

**注意**  
为了更好地兼容 App Runner 服务，我们建议您使用 Amazon Route 53 作为 DNS 提供商。如果您不使用 Amazon Route 53 来管理您的公有 DNS 记录，请联系您的 DNS 提供商以了解如何添加记录。  
如果您使用 Amazon Route 53 作为 DNS 提供商，则可以为*子*域名添加别名记录或别名记录。对于*根域*，请确保使用别名记录。

您可以从 Amazon Route 53 或其他提供商处购买域名。要使用亚马逊 Route 53 购买域名，请参阅亚马逊 R *oute 53 开发者指南*中的[注册新域名](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)。

有关如何在 Route 53 中配置 DNS 目标的说明，请参阅 *Amazon Route 53 开发者指南*中的将[流量路由到您的资源](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-routing-traffic-to-resources.html)。

有关如何在其他注册商（例如 Shopify GoDaddy、Hover 等）上配置 DNS 目标的说明，请参阅他们关于添加 DNS 目标记录的特定文档。

### 指定要与 App Runner 服务关联的域
<a name="manage-custom-domains.specify-domain"></a>

您可以通过以下方式指定要与 App Runner 服务关联的域：
+ *根域* — DNS 有一些固有的限制，可能会阻止您为根域名创建 CNAME 记录。例如，如果您的域名是`example.com`，则可以创建别名记录，将流量路由`acme.example.com`到您的 App Runner 服务。但是，您无法创建将流量路由`example.com`到您的 App Runner 服务的别名记录。要创建根域，请确保添加别名记录。

  别名记录特定于 Route 53，与 CNAME 记录相比，它具有以下优点：
  +  Route 53 为您提供了更大的灵活性，因为可以为根域或子域创建别名记录。例如，如果您的域名是，则可以创建一条记录`example.com`，将请求路由到您的 App Runner 服务`example.com`或发送`acme.example.com`到 App Runner 服务的请求。
  +  它更具成本效益。这是因为 Route 53 不对使用别名记录路由流量的请求收费。
+ *子域名*-例如，`login.example.com`或`admin.login.example.com`。您也可以选择将`www`子域关联为同一操作的一部分。您可以为子域名添加 CNAME 或别名记录。
+ *通配符*-例如，`*.example.com`。在这种情况下，您不能使用该`www`选项。您只能将通配符指定为根域名的直接子域，并且只能将其指定为根域名的直接子域。这些不是有效的规范：`login*.example.com`，`*.login.example.com`。此通配符规范关联所有直接子域，并且不关联根域名本身。根域必须通过单独的操作进行关联。

更具体的域关联会覆盖不太具体的域名关联。例如，`login.example.com`覆盖`*.example.com`。使用更具体的协会的证书和别名记录。

以下示例显示了如何使用多个自定义域名关联：

1. `example.com`与您的服务的主页关联。启用`www`以进行关联`www.example.com`。

1. `login.example.com`与您的服务的登录页面关联。

1. `*.example.com`与自定义 “未找到” 页面关联。

## 取消关联（取消关联）自定义域名
<a name="manage-custom-domains.disassociate-custom-domain"></a>

您可以取消自定义域名与 App Runner 服务的关联（取消关联）。当您取消链接某个域时，App Runner 会停止将流量从该域路由到您的 Web 应用程序。

**注意**  
您必须删除与 DNS 服务器取消关联的域的记录。

App Runner 在内部创建用于跟踪域有效性的证书。这些证书存储在 AWS Certificate Manager (ACM) 中。App Runner 不会在域名与您的服务解除关联后的 7 天内或服务被删除后的 7 天内删除这些证书。

## 管理自定义域名
<a name="manage-custom-domains.manage"></a>

使用以下方法之一管理您的 App Runner 服务的自定义域名：

**注意**  
为了更好地兼容 App Runner 服务，我们建议您使用 Amazon Route 53 作为 DNS 提供商。如果您不使用 Amazon Route 53 来管理您的公有 DNS 记录，请联系您的 DNS 提供商以了解如何添加记录。  
如果您使用 Amazon Route 53 作为 DNS 提供商，则可以为*子*域名添加别名记录或别名记录。对于*根域*，请确保使用别名记录。

------
#### [ App Runner console ]

**使用 App Runner 控制台关联（链接）自定义域**

1. 打开 [App Runner 控制台](https://console.aws.amazon.com/apprunner)，然后在 “**区域**” 列表中，选择您的 AWS 区域。

1. 在导航窗格中，选择**服务**，然后选择您的 App Runner 服务。

   控制台显示带有服务**概述的服务**仪表板。  
![\[显示活动列表的 App Runner 服务仪表板页面\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/console-dashboard.png)

1. 在服务控制面板页面上，选择**自定义域名**选项卡。

   控制台显示与您的服务关联的自定义域名，或者**不显示自定义域名**。  
![\[App Runner 服务控制面板页面上的自定义域名选项卡，未显示任何关联的自定义域名\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-dashboad-domains-empty.png)  
![\[App Runner 服务控制面板页面上的自定义域名选项卡，显示一个待关联的自定义域。\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-dashboad-domains-one-pending.png)

1. 在**自定义域名**选项卡上，选择**关联域名**。

1. 将显示 “**链接自定义域名**” 页面。
   + 如果您的自定义域名是在亚马逊 Route 53 上注册的，请为**域名注册商**选择**亚马逊 Route 53**。

     1. 从下拉列表中选择**域名**。此列表显示您的 Route 53 域名的名称和托管区域 ID。
**注意**  
您必须首先使用与管理其他 App Runner 资源相同的 AWS 账户，使用亚马逊 Route 53 服务创建 Route 53 域。

     1. 选择 D **NS 记录类型**。

     1. 选择**链接域名**。  
![\[链接自定义域名页面，将 Amazon Route 53 显示为所选域名提供商。\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-domains-link-r53.png)
**注意**  
如果 App Runner 显示错误消息，指出自动配置尝试失败，则可以继续手动配置 DNS 记录。如果以前取消了同一个域名与服务的关联，但没有指向该服务之后被删除的 DNS 提供商记录，则可能会出现此问题。在这种情况下，App Runner 被禁止自动覆盖这些记录。要完成 DNS 配置，请跳过此过程中的其余步骤，然后按照中的说明进行操作[配置 Amazon Route 53 别名记录](manage-custom-domains-route53.md)。
   + 如果您的自定义域名是在其他域名注册商处注册的，请为**域**名注册商选择**非—亚马逊**。

     1. 输入**域名**。

     1.  选择**链接域名**。  
![\[链接自定义域名页面，显示所选域名提供商为非亚马逊。\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-domains-link-non-amzn.png)

1. 将显示 “**配置 DNS**” 页面。
   + 如果 Amazon Route 53 是您的 DNS 提供商，则此步骤是可选的。

     此时，App Runner 已自动为你的 Route 53 域配置了所需的证书验证和 DNS 记录。
**注意**  
如果此前未将同一个域名与服务取消链接，但之后没有指向该服务删除的 DNS 提供商记录，那么 App Runner 尝试的自动配置可能会失败。要解决此问题并完成 DNS 关联，请继续执行 “**配置 DNS**” 页面上的步骤 **(1)** **和 (2)**，将当前目标和证书记录复制到 DNS 提供商。

     1. 复制证书验证记录和 DNS 目标记录，并将它们添加到您的 DNS 服务器。然后，App Runner 可以验证您是否拥有或控制该域名。
**注意**  
要自动续订您的自定义域名证书，请确保不要从 DNS 服务器上删除证书验证记录。
       +  有关**配置证书验证**的更多信息，请参阅《*[AWS Certificate Manager 用户指南》](https://docs.aws.amazon.com/acm/latest/userguide/)*中的 [DNS 验证](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)。
       +  有关如何**使用 Amazon Route 53 别名记录配置 DNS 目标**的信息，请参阅[为您的目标 DNS 配置 Amazon Route 53 别名记录](manage-custom-domains-route53.md)。
   + 如果您使用的是 Amazon Route 53 以外的 DNS 提供商，请按照以下步骤操作。

     1. 复制证书验证记录和 DNS 目标记录，并将它们添加到您的 DNS 服务器。然后，App Runner 可以验证您是否拥有或控制该域名。
**注意**  
要自动续订您的自定义域名证书，请确保不要从 DNS 服务器上删除证书验证记录。
       +  有关**配置证书验证**的更多信息，请参阅《*[AWS Certificate Manager 用户指南》](https://docs.aws.amazon.com/acm/latest/userguide/)*中的 [DNS 验证](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)。
       + 有关如何在其他注册商（例如 Shopify GoDaddy、Hover 等）上配置 DNS 目标的说明，请参阅他们关于添加 DNS 目标的特定文档。  
![\[配置 DNS 页面，显示要添加到您的 DNS 的证书验证和 DNS 目标记录。\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/custom-domain-configure.png)

1. 选择 “**关闭**”

   控制台再次显示仪表板。**自定义域名**选项卡上有一个新磁贴，显示您刚刚关联的域名处于 “**待处理证书 DNS 验证**” 状态。  
![\[App Runner 服务控制面板页面上的自定义域名选项卡，其中显示了自定义域名磁贴\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-dashboad-domains-tile.png)

1. 当域状态更改为 “**活动**” 时，请通过浏览该域来验证该域是否可以路由流量。  
![\[App Runner 服务控制面板页面上的自定义域名选项卡，其中显示了自定义域名磁贴\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/service-dashboad-domains-tile-active.png)

**注意**  
有关如何解决与自定义域名相关的错误的说明，请参阅[自定义域名](manage-custom-domain-troubleshoot.md)。

**使用 App Runner 控制台取消关联（取消关联）自定义域**

1. 在**自定义域名**选项卡上，选择要取消关联的域名的磁贴，然后选择**取消关联**域名。

1. 在**取消链接域**对话框中，通过选择**取消链接**域来验证操作。
**注意**  
您必须删除与 DNS 服务器取消关联的域的记录。

------
#### [ App Runner API or AWS CLI ]

要使用 App Runner API 或将自定义网域与您的服务相关联 AWS CLI，请调用 [AssociateCustomDomain](https://docs.aws.amazon.com/apprunner/latest/api/API_AssociateCustomDomain.html)API 操作。调用成功后，将返回一个[CustomDomain](https://docs.aws.amazon.com/apprunner/latest/api/API_CustomDomain.html)对象，该对象描述了与您的服务关联的自定义域。该对象显示`CREATING`状态并包含[CertificateValidationRecord](https://docs.aws.amazon.com/apprunner/latest/api/API_CertificateValidationRecord.html)对象列表。该调用还会返回可用于配置 DNS 目标的目标别名。这些记录可以添加到您的 DNS 中。

要使用 App Runner API 取消自定义网域与您的服务的关联 AWS CLI，请调用 [DisassociateCustomDomain](https://docs.aws.amazon.com/apprunner/latest/api/API_DisassociateCustomDomain.html)API 操作。调用成功后，将返回一个[CustomDomain](https://docs.aws.amazon.com/apprunner/latest/api/API_CustomDomain.html)对象，该对象描述了要与您的服务取消关联的自定义域。该对象显示`DELETING`状态。

------

**Topics**
+ [将自定义域名与您的服务关联（链接）](#manage-custom-domains.associate-custom-domain)
+ [取消关联（取消关联）自定义域名](#manage-custom-domains.disassociate-custom-domain)
+ [管理自定义域名](#manage-custom-domains.manage)
+ [为您的目标 DNS 配置 Amazon Route 53 别名记录](manage-custom-domains-route53.md)

# 为您的目标 DNS 配置 Amazon Route 53 别名记录
<a name="manage-custom-domains-route53"></a>

**注意**  
如果 Amazon Route 53 是您的 DNS 提供商，则无需遵循此程序。在这种情况下，App Runner 会自动为你的 Route 53 域配置所需的证书验证和 DNS 记录，以链接到你的 App Runner Web 应用程序。  
如果 App Runner 的自动配置尝试失败，请按照以下步骤完成 DNS 配置。如果之前取消了同一个域名与服务的关联，但之后没有指向该服务的 DNS 提供商记录，则会阻止 App Runner 自动覆盖这些记录。此过程说明了如何将它们手动复制到您的 Route 53 DNS。

您可以使用 Amazon Route 53 作为您的 DNS 提供商，将流量路由到您的 App Runner 服务。它是一项高度可用且可扩展的域名系统 (DNS) Web 服务。Amazon Route 53 记录包含控制流量如何路由到您的 App Runner 服务的设置。您可以创建 CNAME 记录或别名记录。有关别名记录和别名记录的比较，请参阅 A *mazon Route 53 开发者*指南中的在[别名和非别名记录之间进行选择](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)。

**注意**  
 亚马逊 Route 53 目前支持 2022 年 8 月 1 日之后创建的服务的别名记录。

------
#### [ Amazon Route 53 console ]

**配置 Amazon Route 53 别名记录**

1.  登录 AWS 管理控制台 并打开 [Route 53 控制台](https://console.aws.amazon.com/route53/)。

1.  在导航窗格中，选择 **Hosted zones（托管区域）**。

1.  选择要用于将流量路由到 App Runner 服务的托管区域的名称。

1.  选择**创建记录**。

1.  指定以下值：
   + **路由策略**：选择适用的路由策略。有关更多信息，请参阅[选择路由策略](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)。
   + **记录名称**：输入您要用于将流量路由到您的 App Runner 服务的域名。默认值为托管区的名称。例如，如果托管区域的名称为，`example.com`并且您想使用该名称将流量路由`acme.example.com`到您的环境，请输入`acme`。
   + **值/将流量路由到**：选择 **App Runner 应用程序的别名**，然后选择终端节点所在的**区域**。选择要将流量路由到的应用程序的域名。
   + **记录类型**：接受默认的 **A — IPv4 地址**。
   + **评估目标生命**值：接受默认值 “**是”**。

1.  选择**创建记录**。

您创建的 Route 53 别名记录将在 60 秒内传播到所有 Route 53 服务器上。当使用您的别名记录传播 Route 53 服务器时，您可以使用您创建的别名记录的名称将流量路由到您的 App Runner 服务。

有关如何在 DNS 更改传播时间过长时进行故障排除的信息，请参阅[为什么我的 DNS 更改需要这么长时间才在 Route 53 和公共解析器中传播](https://aws.amazon.com/premiumsupport/knowledge-center/route-53-propagate-dns-changes/)？ 。

------
#### [ Amazon Route 53 API or AWS CLI ]

 使用亚马逊 Route 53 API 配置亚马逊 Route 53 别名记录或 AWS CLI 调用 [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)API 操作。要了解 Route 53 的目标托管区域 ID，请参阅[服务终端节点](https://docs.aws.amazon.com/general/latest/gr/apprunner.html)。

------