

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

# 在 AWS Lambda 计算平台上部署
<a name="deployment-steps-lambda"></a>

本主题提供有关使用 AWS Lambda 计算平台的 CodeDeploy 部署的组件和工作流程的信息。

**Topics**
+ [AWS Lambda 计算平台上的部署工作流程](#deployment-process-workflow-lambda)
+ [上传应用程序修订](#deployment-steps-uploading-your-app-lambda)
+ [创建应用程序和部署组](#deployment-steps-registering-app-deployment-groups-lambda)
+ [部署应用程序修订](#deployment-steps-deploy-lambda)
+ [更新 应用程序](#deployment-steps-updating-your-app-lambda)
+ [停止和失败的部署](#deployment-stop-fail-lambda)
+ [重新部署和部署回滚](#deployment-rollback-lambda)

## AWS Lambda 计算平台上的部署工作流程
<a name="deployment-process-workflow-lambda"></a>

下图显示了部署新增和更新 AWS Lambda 函数的主要步骤。

![\[如何 CodeDeploy 部署新的或更新的 AWS Lambda 函数。\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/images/deployment-process-lambda.png)


这些步骤包括：

1. 创建应用程序并为其指定唯一标识要部署的应用程序修订的名称。要部署 Lambda 函数，请在创建应用程序时 AWS 选择 Lambda 计算平台。 CodeDeploy 在部署期间使用此名称来确保它引用了正确的部署组件，例如部署组、部署配置和应用程序修订。有关更多信息，请参阅 [使用创建应用程序 CodeDeploy](applications-create.md)。

1. 通过指定部署组的名称设置部署组。

1. 选择部署配置以指定流量如何从原始 AWS Lambda 函数版本转移到新 Lambda 函数版本。有关更多信息，请参阅 [使用查看部署配置详细信息 CodeDeploy](deployment-configurations-view-details.md)。

1. 将*应用程序规范文件（AppSpec 文件*）上传到 Amazon S3。该 AppSpec 文件指定了 Lambda 函数版本和用于验证部署的 Lambda 函数。如果您不想创建 AppSpec 文件，则可以使用 YAML 或 JSON 直接在控制台中指定 Lambda 函数版本和 Lambda 部署验证函数。有关更多信息，请参阅 [正在处理的应用程序修订版 CodeDeploy](application-revisions.md)。

1. 将您的应用程序修订部署到部署组。 AWS CodeDeploy 将部署您指定的 Lambda 函数修订版。流量将使用您在创建应用程序时选择的部署 AppSpec 文件转移到您的 Lambda 函数修订版。有关更多信息，请参阅 [使用创建部署 CodeDeploy](deployments-create.md)。

1. 检查部署结果。有关更多信息，请参阅 [监控中的部署 CodeDeploy](monitoring.md)。

## 上传应用程序修订
<a name="deployment-steps-uploading-your-app-lambda"></a>

将 AppSpec 文件放入 Amazon S3 或将其直接输入控制台或 AWS CLI。有关更多信息，请参阅 [CodeDeploy 应用程序规范 (AppSpec) 文件](application-specification-files.md)。

## 创建应用程序和部署组
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

 AWS Lambda 计算平台上的 CodeDeploy 部署组可识别一个或多个 AppSpec 文件的集合。每个 AppSpec 文件可以部署一个 Lambda 函数版本。部署组还定义一些用于未来部署的配置选项，例如警报和回滚配置。

## 部署应用程序修订
<a name="deployment-steps-deploy-lambda"></a>

现在，您可以将 AppSpec 文件中指定的函数修订版部署到部署组了。您可以使用 CodeDeploy 控制台或[创建部署命令](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html)。可以指定一些参数（包括修订、部署组和部署配置）来控制部署。

## 更新 应用程序
<a name="deployment-steps-updating-your-app-lambda"></a>

您可以对应用程序进行更新，然后使用 CodeDeploy 控制台或调用 [create-](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) deployment 命令来推送修订。

## 停止和失败的部署
<a name="deployment-stop-fail-lambda"></a>

您可以使用 CodeDeploy 控制台或[停止部署](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html)命令来停止部署。当您尝试停止部署时，将发生下面三种情况之一：
+ 部署将停止，并且操作将返回成功状态。在这种情况下，没有更多的部署生命周期事件将在已停止部署的部署组上运行。
+ 部署将不会立即停止，并且操作将返回挂起状态。在这种情况下，一些部署生命周期事件可能仍在部署组上运行。在挂起的操作完成后，停止部署的后续调用将返回成功状态。
+ 部署无法停止，并且操作将返回错误。有关更多信息 [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)，请参阅 AWS CodeDeploy API 参考中的[常见错误](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html)。

与停止的部署一样，失败的部署可能导致某些部署生命周期事件已在运行。要查明部署失败的原因，可以使用 CodeDeploy 控制台或分析失败部署中的日志文件数据。有关更多信息，请参阅[应用程序修订和日志文件清理](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup)和[查看 CodeDeploy EC2/本地部署的日志数据](deployments-view-logs.md)。

## 重新部署和部署回滚
<a name="deployment-rollback-lambda"></a>

CodeDeploy 通过将先前部署的修订版作为新部署重新部署来实现回滚。

您可以对部署组进行配置，使之在满足特定条件（例如部署失败或达到警报监控阈值）时自动回滚部署。您还可以在单个部署中覆盖为部署组指定的回滚设置。

另外，也可以选择通过手动重新部署以前部署的版本回滚失败的部署。

在所有情况下，新的或回滚的部署都分配有自己的部署 ID。您可以在 CodeDeploy 控制台中查看的部署列表显示了哪些部署是自动部署的结果。

有关更多信息，请参阅 [使用重新部署和回滚部署 CodeDeploy](deployments-rollback-and-redeploy.md)。