

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

# 使用 CodeBuild 建置徽章範例
<a name="sample-build-badges"></a>

AWS CodeBuild 現在支援使用建置徽章，提供可內嵌、動態產生的映像 (*徽章*)，顯示專案的最新建置狀態。此映像可透過為 CodeBuild 專案產生的公開可用 URL 存取。這可讓任何人檢視 CodeBuild 專案的狀態。組建識別證不包含任何安全資訊，因此不需要身分驗證。

**Topics**
+ [使用組建徽章建立組建專案](#sample-build-badges-request-running)
+ [存取 AWS CodeBuild 建置徽章](access-badges.md)
+ [發佈 CodeBuild 組建徽章](publish-badges.md)
+ [CodeBuild 徽章狀態](badge-statuses.md)

## 使用組建徽章建立組建專案
<a name="sample-build-badges-request-running"></a>

使用下列其中一個程序，在啟用建置徽章的情況下建立建置專案。您可以使用 AWS CLI 或 AWS 管理主控台。

**建立已啟用建置徽章的建置專案 (AWS CLI)**
+ 如需建立組建專案的詳細資訊，請參閱[建立建置專案 (AWS CLI)](create-project.md#create-project-cli)。若要在 AWS CodeBuild 專案中包含建置徽章，您必須指定 *badgeEnabled*，值為 `true`。

**建立已啟用建置徽章的建置專案 （主控台）**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) 開啟 AWS CodeBuild 主控台。

1.  如果顯示 CodeBuild 資訊頁面，請選擇**建立組建專案**。否則，請在導覽窗格中展開**組**建，選擇**組建專案**，然後選擇**建立組建專案**。

1. 在 **Project name (專案名稱)** 中，輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中必須是唯一的。您也可以包含建置專案的選用描述，以協助其他使用者了解此專案的用途。

1. 在 **Source (來源)** 中，針對 **Source provider (來源供應商)**，選擇來源碼提供商類型，然後執行下列其中一項：
**注意**  
 CodeBuild 不支援使用 Amazon S3 來源提供者建置徽章。由於 AWS CodePipeline 使用 Amazon S3 進行成品傳輸，因此屬於 CodePipeline 中建立管道一部分的建置專案不支援建置徽章。
   + 如果您選擇 **CodeCommit**，則對於**儲存庫**，請選擇儲存庫的名稱。選取 **Enable build badge (啟用組建徽章)**，讓專案的組建狀態變成可見且可嵌入。
   + 如果您選擇了 **GitHub**，請遵循說明來與 GitHub 連線 (或重新連線)。在 GitHub **授權應用程式**頁面上，針對**組織存取**，選擇您要 AWS CodeBuild 能夠存取的每個儲存庫旁的**請求**存取。選擇 **Authorize application (授權應用程式)** 後，請回到 AWS CodeBuild 主控台，針對 **Repository (儲存庫)** 選擇包含來源碼的儲存庫名稱。選取 **Enable build badge (啟用組建徽章)**，讓專案的組建狀態變成可見且可嵌入。
   + 如果您選擇了 **Bitbucket**，請遵循說明來與 Bitbucket 連線 (或重新連線)。在 Bitbucket **Confirm access to your account (確認存取您的帳戶)** 頁面上，針對 **Organization access (組織存取)**，選擇 **Grant access (授予存取)**。在您選擇**授予存取權**後，返回 AWS CodeBuild 主控台，針對**儲存庫**，選擇包含原始碼的儲存庫名稱。選取 **Enable build badge (啟用組建徽章)**，讓專案的組建狀態變成可見且可嵌入。
**重要**  
更新您的專案來源可能會影響專案組建徽章的準確度。

1. 在 **Environment (環境)** 中：

   針對 **Environment image (環境映像)**，執行下列其中一項作業：
   + 若要使用由 管理的 Docker 映像 AWS CodeBuild，請選擇**受管映像**，然後從**作業系統**、**執行期 （些）**、**映像**和**映像版本**進行選擇。若可用，請從 **Environment type (環境類型)** 進行選擇。
   + 若要使用另一個 Docker 映像，請選擇 **Custom image (自訂映像)**。針對**環境類型**，選擇 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。如果您選擇**其他登錄**檔，請針對**外部登錄檔 URL**，使用 格式，在 Docker Hub 中輸入 Docker 映像檔的名稱和標籤`docker repository/docker image name`。如果您選擇 **Amazon ECR**，請使用 **Amazon ECR 儲存庫**和 **Amazon ECR 映像**來選擇 AWS 帳戶中的 Docker 映像。
   + 若要使用私有 Docker 映像，請選擇**自訂映像**。針對**環境類型**，選擇 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。針對 **Image registry (映像登錄)** 選擇 **Other registry (其他登錄)**，然後輸入私人 Docker 映像的憑證的 ARN。登入資料必須由 Secrets Manager 建立。如需詳細資訊，請參閱《 AWS Secrets Manager使用者指南》**中的 [What Is AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。

1. 在 **Service role (服務角色)** 中，執行下列其中一項作業：
   + 如果您沒有 CodeBuild 服務角色，請選擇**新服務角色**。在**角色名稱**中，輸入新角色的名稱。
   + 如果您有 CodeBuild 服務角色，請選擇**現有服務角色**。在**角色 ARN** 中，選擇服務角色。
**注意**  
當您使用 主控台建立或更新組建專案時，您可以同時建立 CodeBuild 服務角色。根據預設，此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯，則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

1. 在 **Buildspec** 中，執行下列其中一項操作：
   + 選擇**使用 buildspec 檔案**以使用來源碼根目錄中的 buildspec.yml 檔案。
   + 選擇**插入建置命令**以使用主控台插入建置命令。

   如需更多資訊，請參閱[Buildspec 參考](build-spec-ref.md)。

1. 在 **Artifacts (成品)** 中，針對 **Type (類型)**，執行下列其中一項操作：
   + 如果您不要建立建置輸出成品，則請選擇 **No artifacts (無成品)**。
   + 若要將建置輸出存放在 S3 儲存貯體，請選擇 **Amazon S3**，然後執行下列動作：
     + 如果您想要使用專案名稱做為組建輸出 ZIP 檔案或資料夾名稱，則請將 **Name (名稱)** 保留空白。否則請輸入名稱。根據預設，成品名稱是專案名稱。如果想使用不同的名稱，請在成品名稱方塊中輸入名稱。如果要輸出 ZIP 檔案，請包含 zip 副檔名。
     + 針對 **Bucket name (儲存貯體名稱)**，選擇輸出儲存貯體的名稱。
     + 如果您在本程序稍早選擇 **Insert build commands (插入組建命令)**，然後針對 **Output files (輸出檔案)**，輸入要放入組建輸出 ZIP 檔案或資料夾之組建中的檔案位置。針對多個位置，以逗號區隔每個位置 (例如，`appspec.yml, target/my-app.jar`)。如需詳細資訊，請參閱[Buildspec 語法](build-spec-ref.md#build-spec-ref-syntax)中的 `files` 描述。

1. 展開 **Additional configuration (其他組態)**，並適當地選擇選項。

1. 選擇 **Create build project (建立建置專案)**。在 **Review (檢閱)** 頁面上，選擇 **Start build (開始建置)** 來執行建置。

# 存取 AWS CodeBuild 建置徽章
<a name="access-badges"></a>

您可以使用 AWS CodeBuild 主控台或 AWS CLI 來存取建置徽章。
+ 在 CodeBuild 主控台的組建專案清單中，於**名稱**欄中選擇與組建專案對應的連結。在**建置專案：*project-name*** 頁面上的**組態**中，選擇**複製徽章 URL**。如需詳細資訊，請參閱[檢視建置專案的詳細資訊 (主控台)](view-project-details.md#view-project-details-console)。
+ 在 中 AWS CLI，執行 `batch-get-projects`命令。組建識別碼 URL 會包含在輸出的專案環境詳細資訊區段中。如需詳細資訊，請參閱[檢視建置專案的詳細資訊 (AWS CLI)](view-project-details.md#view-project-details-cli)。

建置徽章請求 URL 是以常見的預設分支產生，但您可以在來源儲存庫中指定用來執行建置的任何分支。例如：

```
https://codebuild.us-east-1.amazon.com/badges?uuid=...&branch=<branch>
```

您也可以使用徽章 URL 中的 `tag` 參數來取代 `branch` 參數，以從來源儲存庫指定標籤。例如：

```
https://codebuild.us-east-1.amazon.com/badges?uuid=...&tag=<tag>
```

# 發佈 CodeBuild 組建徽章
<a name="publish-badges"></a>

您可以使用 Markdown 映像中的建置徽章 URL，在 Markdown 檔案中顯示最新建置的狀態。這有助於顯示來源儲存庫中 readme.md 檔案 （例如 GitHub 或 CodeCommit) 中最新組建的狀態。例如：

```
![](<build badge URL>)
```

# CodeBuild 徽章狀態
<a name="badge-statuses"></a>

CodeBuild 建置徽章可以具有下列其中一種狀態。
+ **PASSING** 在特定分支上的最新組建已通過。
+ **FAILING** 在特定分支上的最新組建已逾時、故障、錯誤或停止。
+ **IN\$1PROGRESS** 在特定分支上的最新組建正在進行中。
+ **UNKNOWN** 專案尚未針對特定的分支執行組建 (或沒有針對任何項目執行過)。此外，組建識別證功能可能已停用。