管理 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 開發人員網路中的設定 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 Web 應用程式。當您使用 App Runner 主控台將自訂網域連結至服務時,就會發生這種情況。以下管理自訂網域主題提供詳細資訊。

CNAME 記錄

當您將自訂網域與服務建立關聯時,App Runner 會為您提供一組憑證驗證記錄,以供憑證驗證。您必須將這些憑證驗證記錄新增至您的網域名稱系統 (DNS) 伺服器。將 App Runner 提供的憑證驗證記錄新增至您的DNS伺服器。如此一來,App Runner 就可以驗證您是否擁有或控制網域。

注意

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

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

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

注意

如果您使用 Amazon Route 53 作為DNS提供者,App Runner 會自動設定您的自訂網域,其中包含必要的憑證驗證和DNS記錄,以連結至您的 App Runner Web 應用程式。當您使用 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 或其他供應商購買網域名稱。若要使用 Amazon Route 53 購買網域名稱,請參閱 Amazon Route 53 開發人員指南 中的註冊新的網域

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

如需如何在其他登錄器上設定DNS目標的指示,例如 GoDaddy、Shopify、Hover 等,請參閱其新增DNS目標記錄的特定文件。

指定要與您的 App Runner 服務建立關聯的網域

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

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

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

    • Route 53 為您提供更多彈性,因為可以為根網域或子網域建立別名記錄。例如,如果您的網域名稱是 example.com,您可以建立記錄,將 example.com或 的請求路由acme.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 天內,或在刪除服務後,刪除這些憑證。

管理自訂網域

使用下列其中一種方法管理 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. 顯示連結自訂網域頁面。

    • 如果您的自訂網域已向 Amazon Route 53 註冊,請選取網域註冊商的 Amazon Route 53

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

        注意

        您必須先使用您用來管理其他 App Runner 資源的相同 AWS 帳戶中的 Amazon Route 53 服務來建立 Route 53 網域。

      2. 選取DNS記錄類型

      3. 選擇連結網域

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

      如果 App Runner 顯示錯誤訊息,指出自動組態嘗試失敗,您可以手動設定DNS記錄以繼續。如果先前從服務取消連結相同的網域名稱,但DNS提供者沒有記錄指向之後刪除的服務,則可能會發生此問題。在此情況下,App Runner 會遭到封鎖,無法自動覆寫這些記錄。若要完成DNS組態,請略過此程序中的其餘步驟,然後遵循 中的指示設定 Amazon Route 53 別名記錄

    • 如果您的自訂網域已向另一個網域註冊商註冊,請選取 Non-Amazon for Domain 註冊商

      1. 輸入網域名稱

      2. 選擇連結網域

    連結自訂網域頁面,顯示非 Amazon 作為選取的網域提供者。
  6. 設定DNS頁面隨即顯示。

    • 如果 Amazon Route 53 是您的DNS提供者,則此步驟為選用。

      此時,App Runner 已使用所需的憑證驗證和DNS記錄自動設定 Route 53 網域。

      注意

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

      1. 複製憑證驗證記錄和DNS目標記錄,並將其新增至您的DNS伺服器。然後,App Runner 可以驗證您是否擁有或控制網域。

        注意

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

    • 如果您使用的是 Amazon Route 53 以外的DNS供應商,請遵循下列步驟。

      1. 複製憑證驗證記錄和DNS目標記錄,並將其新增至您的DNS伺服器。然後,App Runner 可以驗證您是否擁有或控制網域。

        注意

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

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

        • 如需如何在其他登錄器上設定DNS目標的指示,例如 GoDaddy、Shopify、Hover 等,請參閱其新增DNS目標的特定文件。

    設定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狀態。