本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
App Runner 架构和概念
AWS App Runner 从存储库中获取源代码或源图像,并在中为您创建和维护正在运行的 Web 服务 AWS Cloud。通常,您只需要调用一个 App Runner 操作即可创建您的服务。CreateService
使用源映像存储库,您可以提供一个 ready-to-use 容器镜像,App Runner 可以部署该镜像来运行您的 Web 服务。使用源代码存储库,您可以提供用于构建和运行 Web 服务的代码和说明,并以特定的运行时环境为目标。App Runner 支持多个编程平台,每个平台都有一个或多个平台主要版本的托管运行时。
此时,App Runner 可以从 Bitbucket 或存储GitHub
下图显示了 App Runner 服务架构的概述。在图中,有两个示例服务:一种部署来自 Amazon ECR 的源代码 GitHub,另一种部署来自 Amazon ECR 的源映像。同样的流程也适用于 Bitbucket 存储库。
![App Runner 架构](images/architecture.png)
应用程序运行器概念
以下是与 App Runner 中运行的 Web 服务相关的关键概念:
-
App Runner 服务 — App Runner 用于根据源代码存储库或容器映像部署和管理应用程序的 AWS 资源。App Runner 服务是应用程序的运行版本。有关创建服务的更多信息,请参阅创建 App Runner 服务。
-
存储库提供商-包含您的应用程序源(例如 Bitbucket 或 Amazon ECR)的存储库服务。GitHub
-
App Runner 连接 — 一种 AWS 资源,允许 App Runner 访问存储库提供商帐户(例如, GitHub 账户或组织)。有关连接的更多信息,请参阅管理 App Runner 连接。
-
运行时 — 用于部署源代码存储库的基础镜像。App Runner 为不同的编程平台和版本提供了各种托管运行时。有关更多信息,请参阅 基于源代码的 App Runner 服务。
-
部署-将源存储库的某个版本(代码或图像)应用于 App Runner 服务的操作。服务的首次部署是在创建服务时进行的。以后的部署可以通过以下两种方式之一进行:
-
自动部署 — CI/CD 功能。您可以将 App Runner 服务配置为按照存储库中显示的应用程序的每个版本自动构建(对于源代码)和部署。这可以是源代码存储库中的新提交,也可以是源图像存储库中的新图像版本。
-
手动部署 — 您明确启动的 App Runner 服务部署。
-
-
自定义域 — 您与 App Runner 服务关联的域名。您的 Web 应用程序的用户可以使用此域而不是默认的 App Runner 子域来访问您的 Web 服务。有关更多信息,请参阅 管理 App Runner 服务的自定义域名。
注意
为了增强 App Runner 应用程序的安全性,*.awsapprunner.com 域已在公共后缀列表 (PSL) 中注册。
为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带 __Host-
前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie页面。 -
维护 — App Runner 偶尔会在运行 App Runner 服务的基础架构上执行的活动。维护进行时,服务状态会暂时更改为
OPERATION_IN_PROGRESS
(控制台中正在进行操作),持续几分钟。在此期间,您的服务上的操作(例如部署、配置更新、暂停/恢复或删除)将被阻止。几分钟后,当服务状态恢复为时,请重试该操作RUNNING
。注意
如果您的操作失败,并不意味着您的 App Runner 服务已关闭。您的应用程序处于活动状态,并且会继续处理请求。您的服务不太可能遇到任何停机时间。
特别是,如果 App Runner 检测到托管服务的底层硬件存在问题,它就会迁移您的服务。为了防止任何服务停机,App Runner 会将您的服务部署到一组新的实例,并将流量转移到这些实例(蓝绿色部署)。您可能偶尔会看到费用略有暂时增加。
App Runner 支持的配置
配置 App Runner 服务时,需要指定要分配给服务的虚拟 CPU 和内存配置。您需要根据您选择的计算配置付费。有关定价的更多信息,请参阅 AWS Resource Groups
定价
下表提供了有关 App Runner 支持的 vCPU 和内存配置的信息:
CPU | 内存 |
---|---|
0.25 个 vCPU |
0.5 GB |
0.25 个 vCPU |
1 GB |
0.5 个 vCPU |
1 GB |
1 个 vCPU |
2 GB |
1 个 vCPU |
3 GB |
1 个 vCPU |
4 GB |
2 个 vCPU |
4 GB |
2 个 vCPU |
6 GB |
4 个 vCPU |
8 GB |
4 个 vCPU |
10 GB |
4 个 vCPU |
12 GB |
应用程序运行器资源
使用 App Runner 时,可以在中创建和管理几种类型的资源 AWS 账户。这些资源用于访问您的代码和管理您的服务。
下表概述了这些资源:
资源名称 | 描述 |
---|---|
Service |
表示应用程序的运行版本。本指南的其余大部分内容描述了服务类型、管理、配置和监控。 ARN: |
Connection |
为您的 App Runner 服务提供对存储在第三方提供商处的私有存储库的访问权限。作为单独的资源存在,用于在多个服务之间共享。有关连接的更多信息,请参阅管理 App Runner 连接。 ARN: |
AutoScalingConfiguration |
为您的 App Runner 服务提供用于控制应用程序自动缩放的设置。作为单独的资源存在,用于在多个服务之间共享。有关自动扩展的更多信息,请参阅管理 App Runner 自动缩放。 ARN: |
ObservabilityConfiguration |
为您的 App Runner 服务配置其他应用程序可观察性功能。作为单独的资源存在,用于在多个服务之间共享。有关可观测性配置的更多信息,请参阅为您的服务配置可观测性。 ARN: |
VpcConnector |
为您的 App Runner 服务配置 VPC 设置。作为单独的资源存在,用于在多个服务之间共享。有关 VPC 功能的更多信息,请参阅为出站流量启用 VPC 访问权限 。 ARN: |
VpcIngressConnection |
它是一种用于配置传入流量的 AWS App Runner 资源。它在 VPC 接口终端节点和 App Runner 服务之间建立连接,使您的 App Runner 服务只能从 Amazon VPC 中访问。有关 VPC 功能的更多信息IngressConnection,请参阅为传入流量启用私有端点。 ARN: |
应用程序运行器资源配额
AWS 对每个 AWS 区域账户中的 AWS 资源使用施加一些配额(也称为限制)。下表列出了与 App Runner 资源相关的配额。配额也列在AWS App Runner 终端节点中,配额列在中AWS 一般参考。
资源配额 | 描述 | 默认值 | 可调节? | |
---|---|---|---|---|
Services |
您可以在账户中为每项服务创建的最大数量 AWS 区域。 |
30 |
|
|
Connections |
您可以在账户中为每个连接创建的最大连接数 AWS 区域。您可以将单个连接用于多个服务。 |
10 |
|
|
Auto scaling configurations |
名字 |
您在账户中为每个名称创建的 auto Scaling 配置中可以拥有的最大唯一名称数 AWS 区域。您可以将单个自动扩展配置用于多个服务。 |
10 |
|
每个名字的修订次数 |
您可以在账户中为每个 AWS 区域 唯一名称创建的 auto Scaling 配置修订的最大数量。您可以在多个服务中使用单个 auto Scaling 配置修订版。 |
5 |
|
|
Observability configurations |
名字 |
在账户中为每个 AWS 区域可观测性配置创建的唯一名称的最大数量。您可以将单个可观察性配置用于多个服务。 |
10 |
|
每个名字的修订次数 |
您可以在账户中为每个 AWS 区域 唯一名称创建的可观测性配置修订的最大数量。您可以在多个服务中使用单个可观测性配置修订版。 |
10 |
|
|
VPC connectors |
您可以在账户中为每个连接器创建的最大 VPC 连接器数量 AWS 区域。您可以将单个 VPC 连接器用于多个服务。 |
10 |
|
|
VPC Ingress Connection |
您可以在账户中为每 AWS 区域个 VPC 入口连接创建的最大数量。您可以使用单个 VPC 入口连接来访问多个 App Runner 服务。 |
1 |
|
大多数配额都是可调整的,您可以申请增加配额。有关更多信息,请参阅《Service Quotas 用户指南》中的请求增加配额。