View a markdown version of this page

将新的应用程序版本部署到 App Runner - AWS App Runner

AWS App Runner 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息,请参阅 AWS App Runner 可用性变更

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

将新的应用程序版本部署到 App Runner

在中创建服务时 AWS App Runner,需要配置应用程序源,即容器映像或源存储库。App Runner 预置资源以运行您的服务,并将您的应用程序部署到这些资源。

本主题介绍在新版本可用时将应用程序源重新部署到 App Runner 服务的方法。这可以是镜像仓库中的新镜像版本,也可以是代码仓库中的新提交。App Runner 提供了两种部署到服务的方法:自动手动

部署方法

App Runner 为您提供了以下方法来控制应用程序部署的启动方式。

自动部署

当您希望为服务提供持续集成和部署 (CI/CD) 行为时,请使用自动部署。App Runner 会监控您的图像或代码存储库是否有更改。

图像存储库 — 每当您将新的镜像版本推送到镜像存储库或向代码存储库推送新提交时,App Runner 都会自动将其部署到您的服务中,而无需您采取进一步行动。

代码存储库 — 每当您将新的提交推送到代码存储库并在源目录中进行更改时,App Runner 都会部署您的整个存储库。由于只有源目录中的更改才会触发自动部署,因此了解源目录位置如何影响自动部署的范围非常重要。

  • Top-level 目录(存储库根目录)-这是创建服务时为源目录设置的默认值。如果你的源目录设置为这个值,这意味着整个存储库都在源目录内。因此,在这种情况下,你推送到源存储库的所有提交都将触发部署。

  • 任何不是存储库根目录的目录路径(非默认)— 因为只有推送到源目录中的更改才会触发自动部署,因此推送到您的存储库但不在源目录中的任何更改都不会触发自动部署。因此,必须使用手动部署来部署推送到源目录之外的更改。

注意

App Runner 不支持自动部署亚马逊 ECR 公共镜像,也不支持自动部署属于与您的服务所在 AWS 账户不同的亚马逊 ECR 存储库中的镜像。

手动部署

当您要明确启动服务每次部署时,请使用手动部署。如果您为服务配置的存储库有要部署的新版本,则可以启动部署。有关更多信息,请参阅 手动部署

注意

当你运行手动部署时,App Runner 会从完整存储库部署源代码。

您可以通过以下方式配置服务的部署方法:

  • 控制台 -对于您正在创建的新服务或现有服务,在源和部署配置页面的部署设置部分中,选择手动自动

    App Runner 部署方法配置
比较自动和手动部署

自动和手动部署都会产生相同的结果:两种方法都会部署完整的存储库。

两种方法的区别在于触发机制:

手动部署

使用手动部署时,您需要明确启动对服务的每次部署。当您准备好部署新版本的应用程序映像或代码时,可以参考以下章节来了解如何使用控制台和 API 执行部署。

注意

当你运行手动部署时,App Runner 会从完整存储库部署源代码。

使用以下方法之一部署应用程序版本:

App Runner console
使用 App Runner 控制台进行部署
  1. 打开 App Runner 控制台,然后在区域列表中选择您的 AWS 区域。

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

    控制台显示服务仪表板和服务概述

    显示活动列表的 App Runner 服务仪表板页面
  3. 选择部署

    结果:开始部署新版本。在服务仪表板页面上,服务状态更改为操作进行中

  4. 等待部署结束。在服务仪表板页面上,服务状态应更改回 “正在运行”

  5. 要验证部署是否成功,请在服务控制面板页面上选择默认域值——这是您的服务网站的 URL。检查您的 Web 应用程序或与之交互,并验证您的版本更改。

    注意

    为了增强您的 App Runner 应用程序的安全性,在公共后缀列表 (PSL) 中注册了 *.awsapprunner.com 域名。https://publicsuffix.org/为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带__Host-前缀的 cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。有关更多信息,请参阅 Mozilla 开发者网络中的Set-Cookie页面。

App Runner API or AWS CLI

要使用 App Runner API 进行部署 AWS CLI,或调用 StartDeployment API 操作。唯一需要传递的参数是您的服务 ARN。您在创建服务时已经配置了应用程序源位置,App Runner 可以找到新版本。如果调用返回成功的响应,则您的部署将开始。