管理 App Runner 服务的自定义域名 - AWS App Runner

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

管理 App Runner 服务的自定义域名

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

注意

为了增强 App Runner 应用程序的安全性,*.awsapprunner.com 域已在公共后缀列表 () 中注册。PSL为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带__Host-前缀的 Cookie。这种做法将有助于保护您的域名免受跨站请求伪造企图的侵害()CSRF。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie 页面。

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

注意

您可以选择添加域名的www子域名。但是,目前仅支持API。App Runner 控制台不支持包含您的www域名的子域名。

注意

AWS App Runner 不支持使用 Route 53 私有托管区域。私有托管区域可为 Amazon VPC 流量自定义域名解析。有关私有托管区域的更多信息,请参阅 Route 53 文档中的使用私有托管区域

将自定义域名与您的服务关联(链接)

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

注意

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

CNAME记录

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

注意

要自动续订自定义域名证书,请确保不要从DNS服务器上删除证书验证记录。有关如何解决与证书续订相关的问题的信息,请参阅续订自定义域名证书

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

如果您收到与之相关的错误CAA,请参阅以下链接以了解如何解决这些错误:

注意

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

DNS目标记录

将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提供商,则可以为子域名添加任一记录CNAME或别名记录。对于根域,请确保使用别名记录。

您可以从 Amazon Route 53 或其他提供商处购买域名。要使用亚马逊 Route 53 购买域名,请参阅亚马逊 R oute 53 开发者指南中的注册新域名

有关如何在 Route 53 中配置DNS目标的说明,请参阅 Amazon Route 53 开发者指南中的将流量路由到您的资源

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

指定要与 App Runner 服务关联的域

您可以通过以下方式指定要与 App Runner 服务关联的域:

  • 根域 — DNS 有一些固有的限制,可能会阻止您为根域名创建CNAME记录。例如,如果您的域名是example.com,则可以创建一条CNAME记录,将流量路由acme.example.com到您的 App Runner 服务。但是,您无法创建将流量路由example.com到您的 App Runner 服务的CNAME记录。要创建根域,请确保添加别名记录。

    别名记录特定于 Route 53,与CNAME记录相比具有以下优点:

    • Route 53 为您提供了更大的灵活性,因为可以为根域或子域创建别名记录。例如,如果您的域名是example.com,则可以创建一条记录,将请求路由acme.example.com到您的 example.com App Runner 服务。

    • 它更具成本效益。这是因为 Route 53 不对使用别名记录路由流量的请求收费。

  • 子域名-例如,login.example.comadmin.login.example.com。您也可以选择将www子域关联为同一操作的一部分。您可以为子域名添加CNAME或别名记录。

  • 通配符-例如,*.example.com。在这种情况下,您不能使用该www选项。您只能将通配符指定为根域名的直接子域,并且只能将其指定为根域名。这些不是有效的规范:login*.example.com*.login.example.com。此通配符规范将所有直接子域名关联起来,并且不关联根域名本身。根域必须通过单独的操作进行关联。

更具体的域关联会覆盖不太具体的域名关联。例如,login.example.com覆盖*.example.com。使用证书和更具体CNAME的协会的证书。

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

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

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

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

取消关联(取消关联)自定义域名

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

注意

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

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

管理自定义域名

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

注意

为了更好地兼容 App Runner 服务,我们建议您使用 Amazon Route 53 作为DNS提供商。如果您不使用 Amazon Route 53 来管理您的公共DNS记录,请联系您的DNS提供商以了解如何添加记录。

如果您使用 Amazon Route 53 作为DNS提供商,则可以为子域名添加任一记录CNAME或别名记录。对于根域,请确保使用别名记录。

App Runner console
使用 App Runner 控制台关联(链接)自定义域
  1. 打开 App Runner 控制台,然后在 “区域” 列表中,选择你的 AWS 区域.

  2. 在导航窗格中,选择服务,然后选择您的 App Runner 服务。

    控制台显示带有服务概述的服务仪表板。

    显示活动列表的 App Runner 服务仪表板页面
  3. 在服务控制面板页面上,选择自定义域名选项卡。

    控制台显示与您的服务关联的自定义域名,或者不显示自定义域名

    App Runner 服务控制面板页面上的自定义域名选项卡,未显示任何关联的自定义域名
    App Runner 服务控制面板页面上的自定义域名选项卡,显示一个待关联的自定义域。
  4. 自定义域名选项卡上,选择关联域名

  5. 将显示 “链接自定义域名” 页面。

    • 如果您的自定义域名是在亚马逊 Route 53 上注册的,请为域名注册商选择亚马逊 Route 53

      1. 从下拉列表中选择域名。此列表显示您的 Route 53 域名的名称和托管区域 ID。

        注意

        您必须先使用该域名的 Amazon Route 53 服务创建 Route 53 域 AWS 用于管理其他 App Runner 资源的帐户。

      2. 选择DNS记录类型

      3. 选择链接域名

      链接自定义域名页面,将 Amazon Route 53 显示为所选域名提供商。
      注意

      如果 App Runner 显示错误消息,指出自动配置尝试失败,则可以继续手动配置DNS记录。如果以前取消了同一个域名与服务的链接,但没有DNS提供商记录表明该服务随后被删除,则可能会出现此问题。在这种情况下,App Runner 被禁止自动覆盖这些记录。要完成DNS配置,请跳过此过程中的其余步骤,然后按照中的说明进行操作配置 Amazon Route 53 别名记录

    • 如果您的自定义域名是在其他域名注册商处注册的,请为名注册商选择非—亚马逊

      1. 输入域名

      2. 选择链接域名

    链接自定义域名页面,显示所选域名提供商为非亚马逊。
  6. 将显示 DNS “配置” 页面。

    • 如果 Amazon Route 53 是您的DNS提供商,那么此步骤是可选的。

      此时,App Runner 已自动为您的 Route 53 域配置了所需的证书验证和DNS记录。

      注意

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

      1. 复制证书验证记录和DNS目标记录,并将它们添加到您的DNS服务器。然后,App Runner 可以验证您是否拥有或控制该域名。

        注意

        要自动续订您的自定义域名证书,请确保不要从DNS服务器上删除证书验证记录。

    • 如果您使用的是 Amazon Route 53 以外的DNS供应商,请按照以下步骤操作。

      1. 复制证书验证记录和DNS目标记录,并将它们添加到您的DNS服务器。然后,App Runner 可以验证您是否拥有或控制该域名。

        注意

        要自动续订您的自定义域名证书,请确保不要从DNS服务器上删除证书验证记录。

        • 有关配置证书验证的更多信息,请参阅《中的DNS验证 AWS Certificate Manager 用户指南

        • 有关如何在其他注册商(例如 Shopify GoDaddy、Hover 等)上配置DNS目标的说明,请参阅他们关于添加 Tar DNS get 的特定文档。

    “配置DNS” 页面,显示要添加到您的证书验证和DNS目标记录DNS。
  7. 选择关闭

    控制台再次显示仪表板。自定义域名选项卡上有一个新图块,显示您刚刚关联的域名处于 “待证书DNS验证” 状态。

    App Runner 服务控制面板页面上的自定义域名选项卡,其中显示了自定义域名磁贴
  8. 当域状态更改为 “活动” 时,请通过浏览该域来验证该域是否可以路由流量。

    App Runner 服务控制面板页面上的自定义域名选项卡,其中显示了自定义域名磁贴
注意

有关如何解决与自定义域名相关的错误的说明,请参阅自定义域名

使用 App Runner 控制台取消关联(取消关联)自定义域
  1. 自定义域名选项卡上,选择要取消关联的域名的磁贴,然后选择取消关联域名。

  2. 取消链接域对话框中,通过选择取消链接域来验证操作。

    注意

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

App Runner API or AWS CLI

要使用 App Runner 将自定义域与您的服务关联起来,API或者 AWS CLI,调用AssociateCustomDomainAPI行动。调用成功后,将返回一个CustomDomain对象,该对象描述了与您的服务关联的自定义域。该对象显示CREATING状态并包含CertificateValidationRecord对象列表。该调用还会返回可用于配置目标的DNS目标别名。您可以将这些记录添加到您的记录中DNS。

要使用 App Runner API 取消自定义域与您的服务的关联,或者 AWS CLI,调用DisassociateCustomDomainAPI行动。调用成功后,将返回一个CustomDomain对象,该对象描述了要与您的服务取消关联的自定义域。该对象显示DELETING状态。