

AWS App Runner 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS App Runner 可用性变更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# App Runner 架构和概念
<a name="architecture"></a>

AWS App Runner 从存储库中获取源代码或源图像，并在中为您创建和维护正在运行的 Web 服务 AWS Cloud。通常，您只需要调用一个 App Runner 操作即可创建您的服务。[CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)

使用源映像存储库，您可以提供一个 ready-to-use容器镜像，App Runner 可以部署该镜像来运行您的 Web 服务。使用源代码存储库，您可以提供用于构建和运行 Web 服务的代码和说明，并以特定的运行时环境为目标。App Runner 支持多个编程平台，每个平台都有一个或多个平台主要版本的托管运行时。

此时，App Runner 可以从 [Bitbucket 或存储[GitHub](https://github.com/)](https://bitbucket.org/)库中检索您的源代码，也可以从您的 Amazon Elastic Con [tainer Registry (Amazon ECR) Re](https://docs.aws.amazon.com/AmazonECR/latest/userguide/) gistry 中检索您的源图像。 AWS 账户

下图显示了 App Runner 服务架构的概述。在图中，有两个示例服务：一种部署来自 Amazon ECR 的源代码 GitHub，另一种部署来自 Amazon ECR 的源映像。同样的流程也适用于 Bitbucket 存储库。

![App Runner 架构](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/architecture.png)


## 应用程序运行器概念
<a name="architecture.concepts"></a>

以下是与 App Runner 中运行的 Web 服务相关的关键概念：
+ *App Runner 服务* — App Runner 用于根据源代码存储库或容器映像部署和管理应用程序的 AWS 资源。App Runner 服务是应用程序的运行版本。有关创建服务的更多信息，请参阅[创建 App Runner 服务](manage-create.md)。
+ *源类型*-您为部署 App Runner 服务提供的源存储库类型：[源代码](service-source-code.md)或[源图像](service-source-image.md)。
+ *存储库提供商*-包含您的应用程序源（例如 [Bitbucket 或 [Amazon ECR](service-source-image.md#service-source-image.providers.ecr)）的存储](service-source-code.md#service-source-code.providers.github)库服务。[GitHub](service-source-code.md#service-source-code.providers.github)
+ *App Runner 连接* — 一种 AWS 资源，允许 App Runner 访问存储库提供商帐户（例如， GitHub 账户或组织）。有关连接的更多信息，请参阅[管理 App Runner 连接](manage-connections.md)。
+ *运行时* — 用于部署源代码存储库的基础镜像。App Runner 为不同的编程平台和版本提供了各种*托管运行时*。有关更多信息，请参阅 [基于源代码的 App Runner 服务](service-source-code.md)。
+ *部署*-将源存储库的某个版本（代码或图像）应用于 App Runner 服务的操作。服务的首次部署是在创建服务时进行的。以后的部署可以通过以下两种方式之一进行：
  + *自动部署*-一项 CI/CD 功能。您可以将 App Runner 服务配置为按照存储库中显示的应用程序的每个版本自动构建（对于源代码）和部署。这可以是源代码存储库中的新提交，也可以是源图像存储库中的新图像版本。
  + *手动部署* — 您明确启动的 App Runner 服务部署。
+ *自定义域* — 您与 App Runner 服务关联的域名。您的 Web 应用程序的用户可以使用此域而不是默认的 App Runner 子域来访问您的 Web 服务。有关更多信息，请参阅 [管理 App Runner 服务的自定义域名](manage-custom-domains.md)。
**注意**  
[为了增强 App Runner 应用程序的安全性，*\*.awsapprunner.com* 域已在公共后缀列表 (PSL) 中注册。](https://publicsuffix.org/)为了进一步提高安全性，如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie，我们建议您使用带`__Host-`前缀的 Cookie。这将有助于保护您的域，防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息，请参阅 Mozilla 开发者网络中的 [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) 页面。
+ *维护* — App Runner 偶尔会在运行 App Runner 服务的基础架构上执行的活动。维护进行时，服务状态会暂时更改为`OPERATION_IN_PROGRESS`（控制台**中正在进行操作**），持续几分钟。在此期间，您的服务上的操作（例如部署、配置更新、暂停/恢复或删除）将被阻止。几分钟后，当服务状态恢复为时，请重试该操作`RUNNING`。
**注意**  
如果您的操作失败，并不意味着您的 App Runner 服务已关闭。您的应用程序处于活动状态，并且会继续处理请求。您的服务不太可能遇到任何停机时间。

  特别是，如果 App Runner 检测到托管服务的底层硬件存在问题，它就会迁移您的服务。为了防止任何服务停机，App Runner 会将您的服务部署到一组新的实例，并将流量转移到这些实例（蓝绿色部署）。您可能偶尔会看到费用略有暂时增加。

## App Runner 支持的配置
<a name="architecture.vcpu-memory"></a>

 配置 App Runner 服务时，需要指定要分配给服务的虚拟 CPU 和内存配置。您需要根据您选择的计算配置付费。有关定价的更多信息，请参阅 [AWS Resource Groups 定价](https://aws.amazon.com/apprunner/pricing)。

下表提供了有关 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 | 

## 应用程序运行器资源
<a name="architecture.resources"></a>

使用 App Runner 时，可以在中创建和管理几种类型的资源 AWS 账户。这些资源用于访问您的代码和管理您的服务。

下表概述了这些资源：


|  **资源名称**  |  **描述**  | 
| --- | --- | 
| Service | 表示应用程序的运行版本。本指南的其余大部分内容描述了服务类型、管理、配置和监控。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:service/{{service-name}}[/{{service-id}}]` | 
| Connection | 为您的 App Runner 服务提供对存储在第三方提供商处的私有存储库的访问权限。作为单独的资源存在，用于在多个服务之间共享。有关连接的更多信息，请参阅[管理 App Runner 连接](manage-connections.md)。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:connection/{{connection-name}}[/{{connection-id}}]` | 
| AutoScalingConfiguration | 为您的 App Runner 服务提供用于控制应用程序自动缩放的设置。作为单独的资源存在，用于在多个服务之间共享。有关自动扩展的更多信息，请参阅[管理 App Runner 自动缩放](manage-autoscaling.md)。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:autoscalingconfiguration/{{config-name}}[/{{config-revision}}[/{{config-id}}]]` | 
| ObservabilityConfiguration | 为您的 App Runner 服务配置其他应用程序可观察性功能。作为单独的资源存在，用于在多个服务之间共享。有关可观测性配置的更多信息，请参阅[为您的服务配置可观测性](manage-configure-observability.md)。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:observabilityconfiguration/{{config-name}}[/{{config-revision}}[/{{config-id}}]]` | 
| VpcConnector | 为您的 App Runner 服务配置 VPC 设置。作为单独的资源存在，用于在多个服务之间共享。有关 VPC 功能的更多信息，请参阅[为出站流量启用 VPC 访问权限](network-vpc.md)。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:vpcconnector/{{connector-name}}[/{{connector-revision}}[/{{connector-id}}]]` | 
| VpcIngressConnection | 它是一种用于配置传入流量的 AWS App Runner 资源。它在 VPC 接口终端节点和 App Runner 服务之间建立连接，使您的 App Runner 服务只能从 Amazon VPC 中访问。有关 C VPCIngress onnection 功能的更多信息，请参阅[为传入流量启用私有端点](network-pl.md)。<br />ARN：`arn:aws:apprunner:{{region}}:{{account-id}}:vpcingressconnection/{{vpc-ingress-connection-name}}[/{{connector-id}}]]` | 

## 应用程序运行器资源配额
<a name="architecture.quotas"></a>

AWS 对每个 AWS 区域账户中的 AWS 资源使用施加一些配额（也称为限制）。下表列出了与 App Runner 资源相关的配额。配额也列在[AWS App Runner 终端节点中，配额](https://docs.aws.amazon.com/general/latest/gr/apprunner.html)列在中*AWS 一般参考*。


<table>
<thead>
  <tr><th colspan="2"> 资源配额 </th><th> 描述 </th><th> 默认值 </th><th> 可调节？ </th></tr>
</thead>
<tbody>
  <tr><td colspan="2">Services</td><td>您可以在账户中为每项服务创建的最大数量 AWS 区域。</td><td>30</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-yes.png) 是</td></tr>
  <tr><td colspan="2">Connections</td><td>您可以在账户中为每个连接创建的最大连接数 AWS 区域。您可以将单个连接用于多个服务。</td><td>10</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-yes.png) 是</td></tr>
  <tr><td rowspan="2">Auto scaling configurations</td><td>名称</td><td>您在账户中为每个名称创建的 auto Scaling 配置中可以拥有的最大唯一名称数 AWS 区域。您可以将单个自动扩展配置用于多个服务。</td><td>10</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-yes.png) 是</td></tr>
  <tr><td>每个名字的修订次数</td><td>您可以在账户中为每个 AWS 区域 唯一名称创建的 auto Scaling 配置修订的最大数量。您可以在多个服务中使用单个 auto Scaling 配置修订版。</td><td>5</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-no.png) 否</td></tr>
  <tr><td rowspan="2">Observability configurations</td><td>名称</td><td>在账户中为每个 AWS 区域可观测性配置创建的唯一名称的最大数量。您可以将单个可观察性配置用于多个服务。</td><td>10</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-yes.png) 是</td></tr>
  <tr><td>每个名字的修订次数</td><td>您可以在账户中为每个 AWS 区域 唯一名称创建的可观测性配置修订的最大数量。您可以在多个服务中使用单个可观测性配置修订版。</td><td>10</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-no.png) 否</td></tr>
  <tr><td colspan="2">VPC connectors</td><td>您可以在账户中为每个连接器创建的最大 VPC 连接器数量 AWS 区域。您可以将单个 VPC 连接器用于多个服务。</td><td>10</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-yes.png) 是</td></tr>
  <tr><td colspan="2">VPC Ingress Connection</td><td>您可以在账户中为每 AWS 区域个 VPC 入口连接创建的最大数量。您可以使用单个 VPC 入口连接来访问多个 App Runner 服务。</td><td>1</td><td> ![](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/images/icon-no.png) 否</td></tr>
</tbody>
</table>


大多数配额都是可调整的，您可以申请增加配额。有关更多信息，请参阅《Service Quotas 用户指南》中的[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。