

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

您可以使用 的 Jenkins 外掛程式 AWS CodeBuild ，將 CodeBuild 與您的 Jenkins 組建任務整合。您可以使用 外掛程式將組建任務傳送至 CodeBuild，而不是將組建任務傳送至 Jenkins 組建節點。透過此方式，您便不需佈建、設定和管理 Jenkins 組建節點。

**Topics**
+ [設定 Jenkins](#setup-jenkins)
+ [安裝外掛程式。](#plugin-installation)
+ [使用 外掛程式](#plugin-usage)

## 設定 Jenkins
<a name="setup-jenkins"></a>

如需使用 AWS CodeBuild 外掛程式設定 Jenkins 的資訊，以及下載外掛程式原始程式碼，請參閱 [ https：//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 執行個體上的 Plugin Manager 中搜尋 **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 外掛程式要使用的使用者。
   + 建立使用者的登入資料時，請選擇 **Programmatic Access (程式設計存取)**。
   + 建立類似以下的政策，然後將政策連接至您的使用者。

------
#### [ 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 上執行建置**。
   + 設定組建步驟。
     + 提供 **Region (區域)**、**Credentials (登入資料)** 和 **Project Name (專案名稱)** 的值。
     + 選擇 **Use Project source (使用專案來源)**。
     + 儲存組態，並從 Jenkins 執行組建。

1. 針對 **Source Code Management (來源碼管理)**，選擇要擷取來源的方式。您可能需要在 Jenkins 伺服器上安裝 GitHub 外掛程式 (或 Jenkins 外掛程式做為您的來源儲存庫提供者)。
   + 在**設定**頁面上，選擇**新增建置步驟**，然後選擇**執行建置。 AWS CodeBuild**
   + 設定組建步驟。
     + 提供 **Region (區域)**、**Credentials (登入資料)** 和 **Project Name (專案名稱)** 的值。
     + 選擇 **Use Jenkins source (使用 Jenkins 來源)**。
     + 儲存組態，並從 Jenkins 執行組建。<a name="jenkins-pipeline-plugin"></a>

**若要搭配 Jenkins 管道 AWS CodeBuild 外掛程式使用外掛程式**
+ 在 Jenkins 管道專案頁面上，使用程式碼片段產生器來產生管道指令碼，將 CodeBuild 新增為管道中的步驟。它應該會產生類似以下的指令碼：

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