

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

# AWS CodeBuild 与 Jenkins 搭配使用
<a name="jenkins-plugin"></a>

你可以使用 Jenkins 插件 CodeBuild 与你的 AWS CodeBuild Jenkins 构建任务集成。您可以使用插件将您的构建作业发送给 CodeBuild，而不是发送给 Jenkins 构建节点。这样便无需预置、配置和管理 Jenkins 构建节点。

**Topics**
+ [设置 Jenkins](#setup-jenkins)
+ [安装插件](#plugin-installation)
+ [使用插件](#plugin-usage)

## 设置 Jenkins
<a name="setup-jenkins"></a>

有关使用插件设置 Jenkins 以及下载 AWS CodeBuild 插件源代码的信息，请参阅[ https://github.com/awslabs/aws-codebuild-jenkins-plugin](https://github.com/awslabs/aws-codebuild-jenkins-plugin)。

## 安装插件
<a name="plugin-installation"></a>

如果您已设置 Jenkins 服务器并希望仅安装 AWS CodeBuild 插件，请在您的 Jenkins 实例上的插件管理器中搜索 **CodeBuild Plugin for Jenkins**。

## 使用插件
<a name="plugin-usage"></a><a name="source-available-outside-of-your-vpc"></a>

**AWS CodeBuild 与来自 VPC 外部的源一起使用**

1. 在 CodeBuild 控制台中创建项目。有关更多信息，请参阅 [创建构建项目（控制台）](create-project.md#create-project-console)。
   + 选择要在其中运行构建的 AWS 区域。
   + （可选）设置 Amazon VPC 配置以允许 CodeBuild 构建容器访问您的 VPC 中的资源。
   + 记下您的项目的名称。您在步骤 3 中需要它。
   + （可选）如果您的源存储库本身不受支持 CodeBuild，则可以将 Amazon S3 设置为项目的输入源类型。

1. 在中 IAMconsole，创建一个供 Jenkins 插件使用的用户。
   + 当您为该用户创建凭证时，请选择**编程访问**。
   + 创建如下所示的策略，然后将该策略附加到您的用户。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Resource": [
                     "arn:aws:logs:us-east-1:111122223333:log-group:/aws/codebuild/{{projectName}}:*"
                 ],
                 "Action": [
                     "logs:GetLogEvents"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Resource": [
                     "arn:aws:s3:::{{inputBucket}}"
                 ],
                 "Action": [
                     "s3:GetBucketVersioning"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Resource": [
                     "arn:aws:s3:::{{inputBucket}}/{{inputObject}}"
                 ],
                 "Action": [
                     "s3:PutObject"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Resource": [
                     "arn:aws:s3:::{{outputBucket}}/*"
                 ],
                 "Action": [
                     "s3:GetObject"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Resource": [
                     "arn:aws:codebuild:us-east-1:111122223333:project/{{projectName}}"
                 ],
                 "Action": [
                     "codebuild:StartBuild",
                     "codebuild:BatchGetBuilds",
                     "codebuild:BatchGetProjects"
                 ]
             }
         ]
     }
     ```

------

1. 在 Jenkins 中创建一个自由式项目。
   + 在**配置**页面上，选择**添加构建步骤**，然后选择**在 CodeBuild 上运行构建任务**。
   + 配置您的构建步骤。
     + 为**区域**、**凭证**和**项目名称**提供值。
     + 选择**使用项目源**。
     + 保存配置并从 Jenkins 运行构建任务。

1. 对于**源代码管理**，选择您希望如何检索您的源。您可能需要在 Jenkins 服务器上安装 GitHub 插件（或源存储库提供商的 Jenkins 插件）。
   + 在**配置**页面上，选择**添加构建步骤**，然后选择**在 AWS CodeBuild上运行构建任务**。
   + 配置您的构建步骤。
     + 为**区域**、**凭证**和**项目名称**提供值。
     + 选择**使用 Jenkins 源**。
     + 保存配置并从 Jenkins 运行构建任务。<a name="jenkins-pipeline-plugin"></a>

**将 AWS CodeBuild 插件与 Jenkins 管道插件配合使用**
+ 在 Jenkins 流水线项目页面上，使用片段生成器生成一个管道脚本，该脚本 CodeBuild 作为工作流中的一个步骤添加。它应生成如下所示的脚本：

  ```
  awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'
  ```