基于源图像的 App Runner 服务 - AWS App Runner

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

基于源图像的 App Runner 服务

您可以使用基于两种根本不同的服务源 AWS App Runner 来创建和管理服务:源代码源图像。无论源类型如何,App Runner 都会负责启动、运行、扩展和负载平衡您的服务。您可以使用 App Runner 的 CI/CD 功能来跟踪源图像或代码的更改。当 App Runner 发现更改时,它会自动构建(对于源代码)并将新版本部署到您的 App Runner 服务。

本章讨论基于源图像的服务。有关基于源代码的服务的信息,请参见基于源代码的 App Runner 服务

源镜像是存储在镜像存储库中的公共或私有容器镜像。你将 App Runner 指向一个镜像,它就会启动一个基于该镜像运行容器的服务。无需构建阶段。相反,您提供一张 ready-to-deploy 图片。

图像存储库提供商

App Runner 支持以下镜像存储库提供商:

  • 亚马逊 Elastic Container Registry (Amazon ECR) — 存储私有镜像。 AWS 账户

  • Amazon Elastic Container 公共注册表(Amazon ECR Public)— 存储可公开读取的图像。

在您的账户中使用存储在 Amazon ECR 中的 AWS 图片

Amazon ECR 将图像存储在存储库中。有私有和公共存储库。要将您的映像从私有存储库部署到 App Runner 服务,App Runner 需要获得从 Amazon ECR 读取您的图像的权限。要向 App Runner 授予该权限,您需要为 App Runner 提供访问角色。这是一个 AWS Identity and Access Management (IAM) 角色,具有必要的 Amazon ECR 操作权限。使用 App Runner 控制台创建服务时,您可以选择账户中的现有角色。或者,您可以使用 IAM 控制台创建新的自定义角色。或者,您可以选择让 App Runner 控制台根据托管策略为您创建角色。

当你使用 App Runner API 或时 AWS CLI,你需要完成一个分为两步的过程。首先,您使用 IAM 控制台创建访问角色。您可以使用 App Runner 提供的托管策略,也可以输入自己的自定义权限。然后,在创建服务期间使用 CreateServiceAPI 操作提供访问角色。

有关 App Runner 服务创建的信息,请参阅创建 App Runner 服务

使用存储在不同 AWS 账户的 Amazon ECR 中的图片

创建 App Runner 服务时,您可以使用存储在 Amazon ECR 存储库中的映像,该存储库属于您的服务所在 AWS 账户以外的账户。在使用跨账户图片时,除了上一节中列出的关于同账号图片的注意事项外,还有一些其他注意事项需要记住。

  • 跨账户存储库应附有政策。存储库策略为您的访问角色提供了读取存储库中图像的权限。为此,请使用以下政策。access-role-arn替换为您的访问角色的 Amazon 资源名称 (ARN)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "access-role-arn" }, "Action": [ "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:GetDownloadUrlForLayer" ] } ] }

    有关将存储库策略附加到 Amazon ECR 存储库的信息,请参阅 Amazon El astic Contain er Registry 用户指南中的设置存储库策略声明

  • App Runner 不支持在与您的服务所在账户不同的账户中自动部署 Amazon ECR 映像。

使用存储在 Amazon ECR Public 中的图像

Amazon ECR Publi c 存储可公开阅读的图像。以下是 Amazon ECR 和 Amazon ECR Public 之间的主要区别,在 App Runner 服务的背景下,您应该注意这些区别:

  • Amazon ECR 公开图片是公开可读的。在基于 Amazon ECR 公共镜像创建服务时,您无需提供访问角色。存储库不需要附加任何策略。

  • App Runner 不支持自动(持续)部署 Amazon ECR 公共镜像。

直接从 Amazon ECR Public 启动服务

您可以直接启动托管在 Amazon ECR 公共库中的兼容 Web 应用程序的容器映像,作为在 App Runner 上运行的 Web 服务。浏览图库时,请在图库页面上查找 Launch with App Runner 以获取图片。带有此选项的图像与 App Runner 兼容。有关图库的更多信息,请参阅 Amazon ECR 公共用户指南中的使用 Amazon ECR 公共画廊

Amazon ECR 公共图库显示了带有 “使用应用程序运行器启动” 按钮的容器图像页面
将图库图片作为 App Runner 服务启动
  1. 在图像的图库页面上,选择使用 App Runner 启动

    结果:App Runner 控制台将在新的浏览器选项卡中打开。控制台显示创建服务向导,其中已预先填写了大部分所需的新服务详细信息。

  2. 如果要在控制台显示的 AWS 区域以外的区域中创建服务,请选择控制台标题上显示的区域。然后,选择另一个区域。

  3. 在 “端口” 中,输入图像应用程序侦听的端口号。通常,你可以在图片库页面上找到它。

  4. (可选)更改任何其他配置详细信息。

  5. 选择 “下一步”,查看设置,然后选择 “创建并部署”。

图片示例

App Runner 团队在 Amazon ECR 公共图库中维护hello-app-runner示例图片。您可以使用此示例开始创建基于图像的 App Runner 服务。有关更多信息,请参阅hello-app-runner