

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

# 如何部署应用程序
<a name="serverlessrepo-how-to-consume"></a>

本节向您介绍使用 Amazon Web Services 管理控制台 或从部署无服务器应用程序的过程。 Amazon Serverless Application Repository Amazon CLI

## 部署新应用程序（控制台）
<a name="consuming-applications-console"></a>

本节介绍如何 Amazon Serverless Application Repository 使用部署新应用程序 Amazon Web Services 管理控制台。有关部署现有应用程序的新版本的说明，请参阅[更新应用程序](serverlessrepo-how-to-consume-new-version.md)。

### 浏览、搜索和部署应用程序
<a name="browse-and-search-applications"></a>

使用以下步骤在中查找、配置和部署应用程序。 Amazon Serverless Application Repository 

**要在中查找和配置应用程序 Amazon Serverless Application Repository**

1. 打开 [Amazon Serverless Application Repository 公有主页](https://www.amazonaws.cn/serverless/serverlessrepo)，或打开 [Amazon Lambda 控制台](https://console.amazonaws.cn/lambda/)。选择 **Create function (创建函数)**，然后选择 **Browse serverless app repository (浏览无服务器应用程序存储库)**。

1. 浏览或搜索应用程序。
**注意**  
要显示包含自定义 IAM 角色或资源策略的应用程序，请选中 **Show apps that create custom IAM roles or resource policies (显示创建自定义 IAM 角色或资源策略的应用程序)** 复选框。有关自定义 IAM 角色和资源策略的更多信息，请参阅[确认应用程序功能](acknowledging-application-capabilities.md)。

1. 选择一个应用程序以查看详细信息，例如其权限、功能以及 Amazon 客户部署该应用程序的次数。

   将显示您尝试部署应用程序的 Amazon 区域的部署计数。

1. 在应用程序详细信息页面上，通过查看 Amazon SAM 模板、许可证和自述文件来查看应用程序的权限和应用程序资源。在此页上，您还可以找到公开共享的应用程序的 **Source code URL (源代码 URL)** 链接。如果应用程序包含任何嵌套应用程序，您还可以在此页面上查看嵌套应用程序的详细信息。

1. 在 **Application settings (应用程序设置)** 部分中配置应用程序。有关配置特定应用程序的指导，请参阅该应用程序的自述文件。

   例如，配置要求可能包括指定您希望应用程序有权访问的资源的名称。这样的资源可能是亚马逊 DynamoDB 表、亚马逊 S3 存储桶或 Amazon API Gateway API API。

1. 选择**部署**。这样做您会进入 **Deployment status** 页。
**注意**  
如果应用程序具有需要确认的功能，您必须选中 **I acknowledge this application creates custom IAM roles or resource policies (我确认此应用程序创建自定义 IAM 角色或资源策略)** 复选框，然后才能部署应用程序。否则将导致出现错误。有关自定义 IAM 角色和资源策略的更多信息，请参阅[确认应用程序功能](acknowledging-application-capabilities.md)。

1. 在 **Deployment status (部署状态)** 页面上，您可以查看部署的进度。在等待部署完成时，您可以搜索和浏览其他应用程序，然后通过 Lambda 控制台返回此页面。

成功部署应用程序后，您可以查看和管理使用现有 Amazon 工具创建的资源。

## 部署新应用程序 (Amazon CLI)
<a name="consuming-applications-cli"></a>

本节介绍如何使用从部署新应用程序 Amazon CLI。 Amazon Serverless Application Repository 有关部署现有应用程序的新版本的说明，请参阅[更新应用程序](serverlessrepo-how-to-consume-new-version.md)。

### 查找并确认应用程序功能 (Amazon CLI)
<a name="acknowledging-application-capabilities-api"></a>

要使用确认应用程序的功能 Amazon CLI，请执行以下步骤：

1. **查看应用程序的功能。**使用以下 Amazon CLI 命令查看应用程序的功能：

   ```
   aws serverlessrepo get-application \
   --application-id {{application-arn}}
   ```

   [requiredCapabilities](https://docs.amazonaws.cn/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities) 响应属性包含您需要确认然后才能部署应用程序的应用程序功能列表。您也可以使用中的 [GetApplication API](https://docs.amazonaws.cn/goto/WebAPI/serverlessrepo-2017-09-08/GetApplication) Amazon SDKs 来获取这些数据。

1. **创建变更集。**创建 Amazon CloudFormation 变更集时，必须提供一组必需的[权能](https://docs.amazonaws.cn/serverlessrepo/latest/devguide/applications-applicationid-changesets.html#applications-applicationid-changesets-createcloudformationchangesetinput-capabilities)。例如，使用以下 Amazon CLI 命令通过确认应用程序的功能来部署应用程序：

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id {{application-arn}} \
   --stack-name {{unique-name-for-cloud-formation-stack}} \
   --capabilities {{list-of-capabilities}}
   ```

   成功执行此命令后，将返回更改集 ID。下一步需要更改集 ID。您也可以使用中的 [CreateCloudFormationChangeSet API](https://docs.amazonaws.cn/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet) Amazon SDKs 来创建变更集。

   例如，以下 Amazon CLI 命令确认包含具有自定义名称的[AWS::IAM::Role](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)资源和一个或多个嵌套应用程序的应用程序：

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id {{application-arn}} \
   --stack-name {{unique-name-for-cloud-formation-stack}} \
   --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
   ```

1. **执行变更集。**执行更改集将实际执行部署。提供在上一步中创建更改集时返回的更改集 ID。

   以下示例 Amazon CLI 命令执行应用程序变更集来部署应用程序：

   ```
   aws cloudformation execute-change-set \
   --change-set-name {{changeset-id-arn}}
   ```

   您也可以使用中的 [ExecuteChangeSet API](https://docs.amazonaws.cn/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet) Amazon SDKs 来执行变更集。

## 删除应用程序堆栈
<a name="delete-application-stack"></a>

要删除之前使用部署的应用程序 Amazon Serverless Application Repository，请按照与删除 Amazon CloudFormation 堆栈相同的步骤进行操作：
+ **Amazon Web Services 管理控制台**：要使用删除应用程序 Amazon Web Services 管理控制台，请参阅*Amazon CloudFormation 用户指南中的[在 Amazon CloudFormation 控制台上删除堆栈](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。*
+ **Amazon CLI**：要使用删除应用程序 Amazon CLI，请参阅*Amazon CloudFormation 用户指南中的[删除堆栈](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deleting-stack.html)。*