

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

# 教程：使用 Lambda 函数部署 CodePipeline
<a name="tutorials-lambda-deploy"></a>

本教程可帮助您创建部署操作， CodePipeline 该操作可将您的代码部署到您在 Lambda 中配置的函数中。您将创建示例 Lambda 函数，您将在其中创建别名和版本，将压缩后的 Lambda 函数添加到源位置，然后在管道中运行 Lambda 操作。

**注意**  
作为在控制台中创建管道的一部分，S3 工件存储桶将 CodePipeline 用于项目。（这与用于 S3 源操作的存储桶不同。） 如果 S3 工件存储桶与您的管道账户位于不同的账户中，请确保 S3 工件存储桶归其所有 AWS 账户 ，该存储桶是安全且可靠的。

**注意**  
`Lambda` 部署操作仅适用于 V2 类型管道。

## 先决条件
<a name="tutorials-lambda-deploy-prereqs"></a>

您必须先部署一些资源，然后才能使用本教程创建您的 CD 管道。以下是您在开始操作之前需要的资源：

**注意**  
所有这些资源都应在同一个 AWS 区域内创建。
+ 源代码控制存储库（例如 GitHub）或源 S3 存储桶（本教程使用 S3），您将在其中存储为 Lambda 函数创建的`.zip`文件。
+ 您必须使用已更新为具有此操作权限的现有 CodePipeline 服务角色。要更新您的服务角色，请参阅[Lambda 部署操作的服务角色策略权限](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)。

在满足这些先决条件后，您可以继续完成本教程并创建您的 CD 管道。

## 步骤 1：创建示例 Lambda 函数
<a name="tutorials-lambda-deploy-instances"></a>

在此步骤中，您将创建要部署到的 Lambda 函数。

**创建 Lambda 函数**

1. 访问 Lambda 控制台并按照以下教程中的步骤创建示例 Lambda 函数：链接。

1. 从顶部导航栏中选择**创建**，然后从页面顶部选择**从头开始**。

1. 在**名称**中，输入 **MyLambdaFunction**。

1. 发布新版本。这将是别名将指向的版本。

   1. 选择您的函数。

   1. 选择**操作**下拉菜单。

   1. 选择 **새 버전 발행**。

   1. (可选)在**描述**中键入描述。

   1. 选择**发布**。

1. 为您的函数创建别名，例如 `aliasV1`。

1. 确保别名指向您刚刚创建的版本（例如 1）。
**注意**  
如果您选择 \$1LATEST，则无法使用流量转移功能，因为 Lambda 不支持指向多个版本的别名使用 \$1LATEST。

## 步骤 2：将函数文件上传到存储库。
<a name="tutorials-lambda-deploy-file"></a>

下载函数并将其另存为 zip 文件。使用以下步骤将压缩文件上传到 S3 存储桶。

**将 `.zip` 文件添加至您的源存储库**

1. 打开您的 S3 存储桶。

1. 选择**上传**。

1. 将包含您的 `sample_lambda_source.zip` 文件的 zip 文件上传到您的源存储桶。

   记下路径。

   ```
   object key
   ```

## 步骤 3：创建管道
<a name="tutorials-lambda-deploy-pipeline"></a>

使用向 CodePipeline 导创建工作流阶段并连接源存储库。

**创建管道**

1. 打开 CodePipeline 控制台，网址为[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)。

1. 在**欢迎**页面、**入门**页面或**管道**页面上，选择**创建管道**。

1. 在**步骤 1：选择创建选项**页面上的**创建选项**下，选择**构建自定义管道**选项。选择**下一步**。

1. 在**步骤 2：选择管道设置**的**管道名称**中，输入 **MyPipeline**。

1. CodePipeline 提供 V1 和 V2 类型的管道，它们的特性和价格各不相同。在控制台中，您只能选择 V2 类型。有关更多信息，请参阅[管道类型](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel)。有关定价的信息 CodePipeline，请参阅[定价](https://aws.amazon.com/codepipeline/pricing/)。

1. 在**服务角色**中，选择**使用现有服务角色**，然后选择已更新为具有此操作所需权限的 CodePipeline 服务角色。要为此操作配置您的 CodePipeline服务角色，请参阅[Lambda 部署操作的服务角色策略权限](action-reference-LambdaDeploy.md#action-reference-LambdaDeploy-permissions-action)。

1. 将**高级设置**中的各项设置保留为默认值，然后选择**下一步**。

1. 在**步骤 3：添加源阶段**页面上，添加源阶段：

   1. 在**源提供商**中，选择 **Amazon S3**。

   1. 在**对象密钥**中，添加.zip 文件的名称，包括文件扩展名，例如`sample_lambda_source.zip`。

      

   选择**下一步**。

1. 在**步骤 4：添加构建阶段**页面上，选择**跳过**。

1. 在**步骤 5：添加测试阶段**页面上，选择**跳过**。

1. 在**步骤 6：添加部署阶段**页面上，选择 **Lambda**。  
![\[\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/lambdadeploy-edit-screen.png)

   1. 添加您的函数名称和别名。

   1. 选择您的部署策略。

   1. 选择**下一步**。

1. 在 “**步骤 7：审阅**” 页面上，查看您的工作流配置，然后选择**创建管道**来创建管道。  
![\[\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/lambdadeploy-pipeline-screen.png)

## 步骤 4：测试您的管道
<a name="tutorials-lambda-deploy-test"></a>

您的管道应该具备运行 end-to-end原生 AWS 持续部署所需的一切。现在，通过将代码更改推送至您的源存储库来测试管道的功能。

**测试您的管道**

1. 对您的已配置源存储库进行代码更改，然后提交并推送更改。

1. 打开 CodePipeline 控制台，网址为[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)。

1. 从列表中选择您的管道。

1. 监视管道经历不同阶段的进度。您的管道应已完成，您的操作将部署到 Lambda 函数。

## 了解详情
<a name="tutorials-lambda-deploy-learn"></a>

Lambda 部署操作允许使用两种部署方法。一种方法是单独进行流量转移，不使用源操作的输入构件。另一种方法是使用源操作中的输入构件更新函数代码，然后根据更新的代码发布新版本。对于第二种方法，如果提供了别名，也 CodePipeline 将进行流量切换。此 Lambda 部署操作教程演示了使用源构件更新函数。

要了解有关该操作的更多信息，请参阅 [AWS Lambda 部署操作参考](action-reference-LambdaDeploy.md)中的操作参考页面。