管理應用程式執行器服務的自訂網域名稱 - AWS App Runner

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理應用程式執行器服務的自訂網域名稱

當您建立 AWS App Runner 服務時,應用程式執行器會為其分配網域名稱。這是網域中由應用程式執行者擁有的子awsapprunner.com網域。您可以使用網域名稱來存取在服務中執行的 Web 應用程式。

注意

為了增強應用程式執行器應用程式的安全性,*.awsapprunner.com 網域註冊在公用尾碼清單 (PSL) 中。為了進一步的安全性,如果您需要在 App Runner 應用程式的預設網域名稱中設定敏感性 Cookie,建議您使用__Host-前置詞的 Cookie。此做法將有助於保護您的網域免受跨站請求偽造 (CSRF) 攻擊。如需更多資訊,請參閱 Mozilla 開發人員網路中的設定 Cookie 頁面。

如果您擁有域名,則可以將其關聯到您的 App Runner 服務。App Runner 驗證您的新網域之後,除了 App Runner 網域之外,您還可以使用網域存取應用程式。您最多可以關聯五個自訂網域。

注意

您可以選擇性地包含www網域的子網域。不過,目前只有 API 才支援此功能。應用程序運行器控制台不支持包括www域的子域。

注意

AWS App Runner 不支持使用 Route 53 私有託管區域。私有託管區域可自訂 Amazon VPC 流量的網域名稱解析。如需私有託管區域的詳細資訊,請參閱 Route 53 說明文件中的使用私有託管區域

將自訂網域關聯 (連結) 至您的服務

將自訂網域與服務相關聯時,必須將 CNAME 記錄和 DNS 目標記錄新增至 DNS 伺服器。以下各節提供 CNAME 記錄和 DNS 目標記錄以及如何使用它們的相關資訊。

注意

如果您使用 Amazon Route 53 做為 DNS 供應商,App Runner 會自動使用必要的憑證驗證和 DNS 記錄來設定您的自訂網域,以連結至應用程式執行器 Web 應用程式。當您使用 App Runner 主控台將自訂網域連結至服務時,就會發生這種情況。以下管理自訂網域主題提供了更多資訊。

CNAME 記錄

當您將自訂網域與服務建立關聯時,App Runner 會為您提供一組憑證驗證記錄以進行憑證驗證。您必須將這些憑證驗證記錄新增至您的網域名稱系統 (DNS) 伺服器。將 App Runner 提供的憑證驗證記錄新增至您的 DNS 伺服器。這樣,應用程序運行器可以驗證您擁有或控制域。

注意

若要自動續約您的自訂網域憑證,請確定不要從 DNS 伺服器刪除憑證驗證記錄。如需如何解決與憑證續訂相關問題的資訊,請參閱自訂網域憑證續約

應用程序運行器使用 ACM 來驗證域。如果您在 DNS 記錄中使用 CAA 記錄,請確定至少有一個 CAA 記錄參照amazon.com。否則,ACM 無法驗證網域並成功建立您的網域。

如果您收到與 CAA 相關的錯誤,請參閱下列連結以瞭解如何解決這些錯誤:

注意

如果您使用 Amazon Route 53 做為 DNS 供應商,App Runner 會自動使用必要的憑證驗證和 DNS 記錄來設定您的自訂網域,以連結至應用程式執行器 Web 應用程式。當您使用 App Runner 主控台將自訂網域連結至服務時,就會發生這種情況。以下管理自訂網域主題提供了更多資訊。

DNS 目標記錄

將 DNS 目標記錄添加到 DNS 服務器以定位應用程序運行器域。如果您選擇此選項,請為自訂網域新增一筆記錄,為www子網域新增另一筆記錄。然後,在 App Runner 控制台中等待自定義域狀態變為活動狀態。這通常需要幾分鐘的時間,但最多可能需要 24—48 小時 (1—2 天)。驗證您的自訂網域後,App Runner 會開始將流量從此網域路由到您的 Web 應用程式。

注意

為了更好地與應用程序運行器服務的兼容性,我們建議您使用 Amazon 路線 53 作為您的 DNS 提供商。如果您不使用 Amazon Route 53 來管理公用 DNS 記錄,請聯絡您的 DNS 供應商,以瞭解如何新增記錄。

如果您使用 Amazon Route 53 做為 DNS 提供者,您可以為網域新增 CNAME 或別名記錄。針對根網域,請確定您使用別名記錄。

您可以從 Amazon 路線 53 或其他供應商購買網域名稱。若要透過 Amazon Route 53 購買網域名稱,請參閱 Amazon Route 53 開發人員指南中的註冊新網域

如需有關如何在 Route 53 中設定 DNS 目標的指示,請參閱 Amazon Route 53 開發人員指南中的將流量路由到您的資源

如需有關如何在其他註冊商 (例如 GoDaddy Shopify、Hover 等) 上設定 DNS 目標的指示,請參閱他們有關新增 DNS Target 記錄的特定文件。

指定要與您的應用程式執行器服務相關聯的網域

您可以透過下列方式指定要與 App Runner 服務產生關聯的網域:

  • 根網域 — DNS 有一些固有的限制,可能會阻止您為根網域名稱建立 CNAME 記錄。例如,如果您的網域名稱是example.com,您可以建立 CNAME 記錄,將流量路由acme.example.com到您的 App Runner 服務。不過,您無法建立 CNAME 記錄,將流量路由example.com至您的應用程式執行器服務。若要建立根網域,請確定您已新增別名記錄。

    別名記錄是 Route 53 特有的,並且與 CNAME 記錄相比具有以下優點:

    • Route 53 可為根網域或子網域建立別名記錄,提供您更大的彈性。例如,如果您的網域名稱是example.com,您可以建立將要求路由傳送example.comacme.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 會停止將流量從此網域路由傳送至您的 Web 應用程式。

注意

您必須刪除與 DNS 伺服器取消關聯的網域記錄。

應用程序運行器內部創建跟踪域有效性的證書。這些憑證會儲存在 AWS Certificate Manager (ACM) 中。App Runner 在域與您的服務斷開關聯後或刪除服務後的 7 天內不會刪除這些證書。

管理自訂網域

使用下列其中一種方法管理 App Runner 服務的自訂網域:

注意

為了更好地與應用程序運行器服務的兼容性,我們建議您使用 Amazon 路線 53 作為您的 DNS 提供商。如果您不使用 Amazon Route 53 來管理公用 DNS 記錄,請聯絡您的 DNS 供應商,以瞭解如何新增記錄。

如果您使用 Amazon Route 53 做為 DNS 提供者,您可以為網域新增 CNAME 或別名記錄。針對根網域,請確定您使用別名記錄。

App Runner console
使用應用程式執行器主控台建立關聯 (連結) 自訂網域
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 在功能窗格中,選擇 [服務],然後選擇您的應用程式執行器服務。

    主控台會顯示服務儀表板,其中包含服務概觀

    顯示活動清單的 App Runner 服務儀表板頁
  3. 在服務儀表板頁面上,選擇 [自訂網域] 索引標籤。

    主控台會顯示與您的服務相關聯的自訂網域,或 [無自訂網域]。

    App Runner 服務儀表板頁面上的「自定義域」選項卡,不顯示任何關聯的自定義域
    App Runner 服務儀表板頁面上的 [自訂網域] 索引標籤,顯示一個自訂網域擱置關聯。
  4. 在「自訂網域」標籤上,選擇「連結網域」。

  5. 連結自訂網域頁面隨即顯示。

    • 如果您的自訂網域是透過 Amazon Route 53 註冊的,請為網域註冊商選取 Amazon Route 53

      1. 從下拉式清單中選取「網域名稱」。此清單會顯示您的 Route 53 網域名稱和託管區域 ID 的名稱。

        注意

        您必須先從管理其他應用程式執行程式資源的相同 AWS 帳戶,使用 Amazon Route 53 服務建立 Route 53 網域。

      2. 選取 DNS 記錄類型

      3. 選擇「連結網域」。

      連結自訂網域頁面,將 Amazon Route 53 顯示為選取的網域供應商。
      注意

      如果 App Runner 顯示錯誤訊息,指出自動設定嘗試失敗,您可以手動設定 DNS 記錄來繼續。如果先前已取消相同網域名稱與服務的連結,而沒有指向之後刪除服務的 DNS 提供者記錄,就會發生此問題。在這種情況下,應用程序運行器被阻止自動覆蓋這些記錄。若要完成 DNS 組態,請略過此程序中的其餘步驟,然後遵循中的指示設定 Amazon 路線 53 別名記錄

    • 如果您的自訂網域是向其他網域註冊商註冊,請為網註冊商選取非 Amazon

      1. 輸入網域名稱

      2. 選擇「連結網域」。

    連結自訂網域頁面,顯示非 Amazon 作為選定的網域供應商。
  6. [設定 DNS] 頁面隨即顯示。

    • 如果 Amazon Route 53 是您的 DNS 提供商,則此步驟是可選的。

      此時應用程式執行程式已自動設定您的 Route 53 網域,並使用必要的憑證驗證和 DNS 記錄。

      注意

      如果先前已取消與服務的連結相同的網域名稱,但沒有指向之後刪除服務的 DNS 提供者記錄,則 App Runner 嘗試的自動設定可能會失敗。若要解決此問題並完成 DNS 關聯,請繼續執行 [設定 DNS] 頁面上的步驟 (1) 和 (2),將目前的目標和憑證記錄複製到 DNS 提供者。

      1. 複製憑證驗證記錄和 DNS 目標記錄,並將其新增至您的 DNS 伺服器。然後,應用程序運行器可以驗證您擁有或控制該域。

        注意

        若要自動續約您的自訂網域憑證,請確定不要從 DNS 伺服器刪除憑證驗證記錄。

    • 如果您使用的是 Amazon 路線 53 以外的 DNS 提供商,請按照以下步驟操作。

      1. 複製憑證驗證記錄和 DNS 目標記錄,並將其新增至您的 DNS 伺服器。然後,應用程序運行器可以驗證您擁有或控制該域。

        注意

        若要自動續約您的自訂網域憑證,請確定不要從 DNS 伺服器刪除憑證驗證記錄。

        • 如需有關設定憑證驗證的詳細資訊,請參閱AWS Certificate Manager 使用指南中的 DNS 驗證

        • 如需有關如何在其他註冊商 (例如 GoDaddy Shopify、Hover 等) 上設定 DNS 目標的指示,請參閱他們有關新增 DNS 目標的特定文件。

    [設定 DNS] 頁面,顯示要新增至 DNS 的憑證驗證和 DNS 目標記錄。
  7. 選擇關閉

    控制台再次顯示儀表板。[自訂網域] 索引標籤有新的方塊,顯示您剛才在擱置憑證 DNS 驗證狀態中連結的網域。

    [App Runner 服務儀表板] 頁面上的 [自訂網域] 索引標籤,顯示自訂網域圖標
  8. 當網域狀態變更為「作用」時,請瀏覽至網域來驗證網域是否適用於路由流量。

    [App Runner 服務儀表板] 頁面上的 [自訂網域] 索引標籤,顯示自訂網域圖標
注意

如需有關如何疑難排解自訂網域相關錯誤的指示,請參閱自訂網域名稱

使用 App Runner 主控台取消關聯 (取消連結) 自訂網域
  1. 在 [自訂網域] 索引標籤上,選取您要取消關聯的網域磚,然後選擇 [取消連結網域]。

  2. 在「取消連結網域」對話方塊中,選擇「取消連結網域」來確認動作。

    注意

    您必須刪除與 DNS 伺服器取消關聯的網域記錄。

App Runner API or AWS CLI

若要使用應用程式執行器 API 將自訂網域與您的服務建立關聯 AWS CLI,或呼叫 AssociateCustomDomainAPI 動作。呼叫成功時,會傳回描述與您的服務相關聯之自訂網域的CustomDomain物件。該對象顯示某個CREATING狀態,并包含對CertificateValidationRecord象列表。呼叫也會傳回可用來設定 DNS 目標的目標別名。這些是您可以新增至 DNS 的記錄。

若要使用應用程式執行器 API 取消自訂網域與服務的關聯 AWS CLI,或呼叫 DisassociateCustomDomainAPI 動作。當呼叫成功時,會傳回描述與服務中斷關聯的自訂網域的CustomDomain物件。該對象顯示某個DELETING狀態。