

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

# AWS App Runner 与一起使用 AWS Toolkit for Visual Studio Code
<a name="using-apprunner"></a>

[AWS App Runner](https://docs.aws.amazon.com/apprunner/latest/dg/what-is-apprunner.html)提供了一种快速、简单且经济实惠的方式，可将源代码或容器映像直接部署到 AWS 云中可扩展且安全的 Web 应用程序。使用它，您无需学习新技术、决定使用哪种计算服务，也不需要知道如何配置和配置 AWS 资源。

您可以使用 AWS App Runner 基于*源图像或源**代码*创建和管理服务。如果您使用源镜像，则可以选择存储在镜像存储库中的公有或私有容器镜像。App Runner 支持以下镜像存储库提供商：
+ 亚马逊 Elastic Container Registry (Amazon ECR)：在您的账户中存储私有图片。 AWS 
+ Amazon Elastic Container Registry Public (Amazon ECR Public)：存储公开可读的镜像。

 如果选择源代码选项，则可以从受支持的存储库提供商维护的源代码存储库进行部署。目前，App Runner 支持[GitHub](https://github.com/)作为源代码存储库提供者。

## 先决条件
<a name="apprunner-prereqs"></a>

要使用与 App Runner 进行交互， AWS Toolkit for Visual Studio Code 需要满足以下条件：
+ 一个 AWS 账户
+ 该功能 AWS Toolkit for Visual Studio Code 的一个版本 AWS App Runner

 除了这些核心要求之外，请确保所有相关的 IAM 用户都有权与 App Runner 服务进行交互。此外，您还需要获取有关服务源的特定信息，例如容器镜像 URI 或与 GitHub 存储库的连接。创建 App Runner 服务时，您需要使用此信息。

### 为 App Runner 配置 IAM 权限
<a name="app-runner-permissions"></a>

授予 App Runner 所需权限的最简单方法是将现有 AWS 托管策略附加到相关 AWS Identity and Access Management (IAM) 实体，特别是用户或群组。App Runner 提供两种可附加到 IAM 用户的托管策略：
+ `AWSAppRunnerFullAccess`：允许用户执行所有 App Runner 操作。
+ `AWSAppRunnerReadOnlyAccess`：允许用户列出和查看有关 App Runner 资源的详细信息。

此外，如果您从 Amazon Elastic Container Registry (Amazon ECR) 中选择私有存储库作为服务源，则必须为 App Runner 服务创建以下访问角色：
+ `AWSAppRunnerServicePolicyForECRAccess`：允许 App Runner 访问您账户中的 Amazon Elastic Container Registry (Amazon ECR) 镜像。

使用 VS Code 的**命令面板**配置服务实例时，您可以自动创建此角色。

**注意**  
**AWSServiceRoleForAppRunner**服务相关角色 AWS App Runner 允许完成以下任务：  
将日志推送到 Amazon CloudWatch 日志组。
创建亚马逊 CloudWatch 活动规则以订阅亚马逊弹性容器注册表 (Amazon ECR) Container Registry 图片推送。
无需手动创建 服务关联角色。当您使用调用的 API 操作 AWS App Runner 在 AWS 管理控制台 或中创建时 AWS Toolkit for Visual Studio Code， AWS App Runner 会为您创建此服务相关角色。

有关更多信息，请参阅 *AWS App Runner 开发人员指南*中的[适用于 App Runner 的 Identity and Access Management](https://docs.aws.amazon.com/apprunner/latest/dg/security-iam.html)。

### 获取 App Runner 的服务源
<a name="app-runner-sources"></a>

您可以使用 AWS App Runner 从源图像或源代码部署服务。

------
#### [ Source image ]

如果您从源映像进行部署，则可以从私有或公共映像注册表中获取该映 AWS 像存储库的链接。
+ [Amazon ECR 私有注册表：复制在存储库中使用 Amazon ECR 控制台的私有存储库的 URI。https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/repositories)
+ Amazon ECR 公共注册表：复制使用 Amazon ECR Public Gallery 的公有存储库的 URI：[https://gallery.ecr.aws/](https://gallery.ecr.aws)。

**注意**  
您还可以直接从 Toolkit for VS Code 中的 **AWS Explorer** 获取私有 Amazon ECR 存储库的 URI：  
打开**AWS 资源管理器**并展开 **ECR** 节点以查看该 AWS 区域的存储库列表。
右键单击存储库，然后选择 **Copy Repository URI**（复制存储库 URI）以将链接复制到剪贴板。

使用 VS Code 的**命令面板**配置服务实例时，您可以指定映像存储库的 URI。

有关更多信息，请参阅 *AWS App Runner 开发人员指南*中的[基于源镜像的 App Runner 服务](https://docs.aws.amazon.com/apprunner/latest/dg/service-source-image.html)。

------
#### [ Source code ]

要将源代码部署到 AWS App Runner 服务，该代码必须存储在由支持的存储库提供商维护的 Git 存储库中。App Runner 支持一个源代码存储库提供商:[GitHub](https://github.com/).

有关设置 GitHub 存储库的信息，请参阅上的 “[入门” 文档](https://docs.github.com/en/github/getting-started-with-github) GitHub。

要将您的源代码从 GitHub 存储库部署到 App Runner 服务，App Runner 需要与建立连接 GitHub。如果您的存储库是私有的（也就是说，它不能在上公开访问 GitHub），则必须向 App Runner 提供连接详细信息。

**重要**  
要创建 GitHub 连接，必须使用 App Runner 控制台 ([https://console.aws.amazon.com/apprunner](https://console.aws.amazon.com/apprunner)) 创建链接到的连接。 GitHub AWS使用 VS Code 的**命令面板**配置服务实例时，您可以选择**GitHub连接**页面上可用的连接。  
有关更多信息，请参阅 *AWS App Runner 开发人员指南*中的[管理 App Runner 连接](https://docs.aws.amazon.com/apprunner/latest/dg/manage-connections.html)。

App Runner 服务实例提供托管运行时，允许您的代码生成和运行。 AWS App Runner 目前支持以下运行时：
+ Python 托管运行时 
+ Node.js 托管运行时

作为服务配置的一部分，您可以提供有关 App Runner 服务如何构建和启动服务的信息。您可以使用**命令调色板**输入此信息，或指定 YAML 格式的 [App Runner 配置文件](https://docs.aws.amazon.com/apprunner/latest/dg/config-file.html)。此文件中的值指示 App Runner 如何构建和启动服务以及提供运行时上下文。这包括相关的网络设置和环境变量。配置文件名为 `apprunner.yaml`。它会自动添加到应用程序存储库的根目录中。

 

------

## 定价
<a name="app-runner-pricing"></a>

您需要为应用程序使用的计算和内存资源付费。此外，如果选择自动执行部署，则还需要为每个应用程序支付一笔固定的月费，其中涵盖该月的所有自动化部署。如果您选择从源代码进行部署，则还需要为 App Runner 从源代码构建容器所需的时间支付构建费用。

有关更多信息，请参阅[AWS App Runner 定价](https://aws.amazon.com/apprunner/pricing/)。

**Topics**
+ [先决条件](#apprunner-prereqs)
+ [定价](#app-runner-pricing)
+ [创建 App Runner 服务](creating-service-apprunner.md)
+ [管理 App Runner 服务](managing-service-apprunner.md)