拉取请求的 Web 预览 - AWS Amplify 托管

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

拉取请求的 Web 预览

Web 预览为开发和质量保证 (QA) 团队提供了一种在将代码合并到生产或集成分支之前预览拉取请求 (PR) 中更改的方法。拉取请求可以让您将已推送到存储库中某个分支的更改告诉给其他人。打开拉取请求后,您可以与合作者讨论和查看潜在的更改,并在更改合并到基础分支之前添加后续提交。

Web 预览会将向存储库发出的每个拉取请求部署到一个唯一的预览网址,该网址与您的主网站使用的网址完全不同。对于使用 Amplify CLI 或 Amplify Studio 配置了后端环境的应用程序,每个拉取请求(仅限私有 Git 存储库)都会创建一个临时后端,该后端在 PR 关闭时会被删除。

当您的应用开启网页预览时,每个 PR 都会计入每个应用 50 个分支的 Amplify 配额。为避免超过此配额,请务必关闭您的 PR。有关限额的更多信息,请参阅Amplify 托管服务限额

注意

当前,当 AWS CodeCommit 用作存储库提供者时,AWS_PULL_REQUEST_ID环境变量不可用。

启用 Web 预览

对于存储在存储 GitHub 库中的应用程序,预览使用 Amplify GitHub 应用程序访问存储库。如果您要在之前使用 OAuth 访问的存储库中 GitHub 部署的现有 Amplify 应用程序上启用网页预览,则必须先迁移该应用程序才能使用 Amplify 应用程序。 GitHub 有关迁移说明,请参阅 将现有 OAuth 应用程序迁移到 Amplify GitHub 应用程序

重要

出于安全考虑,您可以在所有带有私有存储库的应用程序上启用 Web 预览,但不能在所有带有公共存储库的应用程序上启用 Web 预览。如果您的 Git 存储库是公开的,则只能为不需要 IAM 服务角色的应用程序设置预览。

例如,带有后端的应用程序和部署到 WEB_COMPUTE 托管平台的应用程序需要一个 IAM 服务角色。因此,如果这些类型的应用程序存储库是公开的,则无法为其启用 Web 预览。

Amplify 强制执行此限制是为了防止第三方提交使用您的应用程序的 IAM 角色权限运行的任意代码。

为拉取请求启用 Web 预览
  1. 选择 “托管”,然后选择 “预览”。

    注意

    只有将应用程序设置为持续部署并连接到 git 存储库时,预览才会显示在应用程序设置菜单中。有关此类部署的说明,请参阅现有代码入门

  2. 仅限 GitHub 存储库,请执行以下操作在您的账户中安装和授权 Amplify GitHub 应用程序:

    1. 在 “安装 GitHub 应用程序以启用预览” 窗口中,选择 “安装 GitHub 应用程序”。

    2. 选择要在其中配置 Amplify 应用程序 GitHub的 GitHub 账户。

    3. GitHub.com 打开一个页面,用于为您的账户配置存储库权限。

    4. 请执行以下操作之一:

      • 要将安装应用于所有存储库,请选择所有存储库

      • 要将安装限于您所选择的特定存储库,请选择仅选择存储库。确保在您选择的存储库中包含您要为其启用 Web 预览的应用程序的存储库。

    5. 选择保存

  3. 为存储库启用预览后,返回 Amplify 控制台为特定分支启用预览。在 “预览” 页面上,从列表中选择一个分支,然后选择 “编辑设置”

  4. 管理预览设置页面上,打开拉取请求预览。然后,选择 Confirm(确认)

  5. 对于全栈应用程序,执行以下操作之一:

    • 选择为每个拉取请求创建新的后端环境。此选项使您能够在不影响生产的情况下测试更改。

    • 选择将此分支的所有拉取请求指向现有环境

  6. 选择确认

下次您为分支提交拉取请求时,Amplify 会构建您的 PR 并将其部署到预览网址。拉取请求关闭后,将删除预览网址,并删除与拉取请求关联的所有临时后端环境。仅限 GitHub 仓库,您可以直接通过 GitHub 账户中的拉取请求访问网址的预览。

使用子域名进行 Web 预览访问

对于连接到 Amazon Route 53 管理的自定义域名的 Amplify 应用程序,可以使用子域名访问拉取请求的网络预览。拉取请求关闭后,与拉取请求关联的分支和子域名会被自动删除。在为应用程序设置基于模式的功能分支部署后,这是 Web 预览的默认行为。有关设置自动子域的说明,请参阅 为 Amazon Route 53 自定义域设置自动子域