

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

# 提取請求的 Web 預覽
<a name="pr-previews"></a>

Web 預覽提供開發和品質保證 (QA) 團隊在將程式碼合併到生產或整合分支之前，預覽提取請求 (PRs) 的變更。提取請求可讓您告訴其他人您已推送到儲存庫中分支的變更。開啟提取請求後，您可以與協作者討論和檢閱潛在變更，並在變更合併到基本分支之前新增後續遞交。

Web 預覽會將對儲存庫提出的每個提取請求部署到唯一的預覽 URL，這與主要網站使用的 URL 完全不同。對於使用 Amplify CLI 或 Amplify Studio 佈建後端環境的應用程式，每個提取請求 (**僅限私有 Git 儲存庫**) 都會建立臨時後端，並在 PR 關閉時刪除。

為您的應用程式開啟 Web 預覽時，每個 PR 都會計入每個應用程式的 50 個分支的 Amplify 配額。若要避免超過此配額，請務必關閉您的 PRs。如需配額的詳細資訊，請參閱 [Amplify 託管服務配額](quotas-chapter.md)。

**注意**  
目前，使用 AWS CodeCommit 做為儲存庫提供者時，無法使用 `AWS_PULL_REQUEST_ID`環境變數。

**Web 預覽安全性**

基於安全考量，您可以在所有具有私有儲存庫的應用程式上啟用 Web 預覽，但並非所有具有公有儲存庫的應用程式上都啟用。如果您的 Git 儲存庫是公有的，您只能為不需要 IAM 服務角色的應用程式設定預覽。例如，具有後端的應用程式和部署到`WEB_COMPUTE`託管平台的應用程式需要 IAM 服務角色。因此，如果這些類型的應用程式儲存庫是公有的，則您無法啟用這些類型的 Web 預覽。Amplify 會強制執行此限制，以防止第三方提交使用您應用程式的 IAM 角色許可執行的任意程式碼。

當公有儲存庫中的應用程式啟用 Web 預覽時，使用 SSR 運算角色時，您需要仔細管理哪些分支可以存取該角色。建議您不要使用應用程式層級角色。反之，您應該在分支層級連接運算角色。這可讓您僅將許可授予需要存取特定資源的分支。如需詳細資訊，請參閱 [新增 SSR 運算角色以允許存取 AWS 資源](amplify-SSR-compute-role.md)。

## 啟用提取請求的 Web 預覽
<a name="enable-web-previews"></a>

對於存放在 GitHub 儲存庫中的應用程式，Web 預覽使用 Amplify GitHub 應用程式進行儲存庫存取。如果您在先前使用 OAuth 從 GitHub 儲存庫部署的現有 Amplify 應用程式上啟用 Web 預覽，您必須先遷移應用程式以使用 Amplify GitHub 應用程式。如需遷移說明，請參閱 [將現有OAuth應用程式遷移至 Amplify GitHub 應用程式](setting-up-GitHub-access.md#migrating-to-github-app-auth)。

**啟用提取請求的 Web 預覽**

1. 選擇**託管**，然後選擇**預覽**。
**注意**  
只有當應用程式設定為持續部署並連接到 git 儲存庫時，**預覽**才會出現在應用程式**設定**選單中。如需此部署類型的指示，請參閱[開始使用現有程式碼](getting-started.md)。

1. 僅適用於 GitHub 儲存庫，請執行下列動作，在您的帳戶中安裝並授權 Amplify GitHub 應用程式：

   1. 在**安裝 GitHub 應用程式以啟用預覽**視窗中，選擇**安裝 GitHub 應用程式**。

   1. 選取您要設定 Amplify GitHub 應用程式的 GitHub 帳戶。

   1. 在 https：//Github.com 上開啟一個頁面，以設定您帳戶的儲存庫許可。

   1. 執行以下任意一項：
      + 若要將安裝套用至所有儲存庫，請選擇**所有儲存庫**。
      + 若要將安裝限制為您選取的特定儲存庫，請選擇**僅選取儲存庫**。請務必在您選取的儲存庫中包含您要為其啟用 Web 預覽的應用程式儲存庫。

   1. 選擇**儲存**

1. 啟用儲存庫的預覽後，請返回 Amplify 主控台以啟用特定分支的預覽。在**預覽**頁面上，從清單中選擇分支，然後選擇**編輯設定**。

1. 在**管理預覽設定**頁面上，開啟**提取請求預覽**。然後選擇 **Confirm** (確認)。

1. 對於 Fullstack 應用程式，請執行下列其中一項操作：
   + 選擇，**為每個提取請求建立新的後端環境**。此選項可讓您測試變更，而不會影響生產。
   + 選擇**將此分支的所有提取請求指向現有環境**。

1. 選擇**確認**。

下次您提交分支的提取請求時，Amplify 會建置您的 PR 並將其部署至預覽 URL。關閉提取請求後，會刪除預覽 URL，並刪除連結至提取請求的任何暫時後端環境。僅適用於 GitHub 儲存庫，您可以直接從 GitHub 帳戶中的提取請求存取 URL 預覽。

## 具有子網域的 Web 預覽存取
<a name="web-preview-access-on-subdomains"></a>

提取請求的 Web 預覽可透過連線至由 Amazon Route 53 管理之自訂網域的 Amplify 應用程式子網域存取。關閉提取請求時，會自動刪除與提取請求相關聯的分支和子網域。這是您為應用程式設定模式型功能分支部署後 Web 預覽的預設行為。如需設定自動子網域的指示，請參閱 [設定 Amazon Route 53 自訂網域的自動子網域](to-set-up-automatic-subdomains-for-a-Route-53-custom-domain.md)。