

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

# CodeBuild 的第三方來源儲存庫範例
<a name="sample-third-party-source"></a>

本節說明第三方來源儲存庫與 CodeBuild 之間的範例整合。


| 樣本 | Description | 
| --- | --- | 
|  BitBucket pull 請求和 Webhook 篩選條件範例 – 請參閱 [執行 CodeBuild 的「Bitbucket pull request and Webhook filter」範例](sample-bitbucket-pull-request.md)  |  此範例示範如何使用 Bitbucket 儲存庫建立提取請求。它還說明如何使用 Bitbucket Webhook 來觸發 CodeBuild 來建立專案的建置。  | 
|  GitHub Enterprise Server 範例 – 請參閱 [執行 CodeBuild 的 GitHub Enterprise Server 範例](sample-github-enterprise.md)  |  此範例示範如何在 GitHub Enterprise Server 儲存庫安裝憑證時設定 CodeBuild 專案。它還顯示如何啟用 Webhook，以便 CodeBuild 每次將程式碼變更推送到您的 GitHub Enterprise Server 儲存庫時重建原始程式碼。  | 
|  GitHub 提取請求和 Webhook 篩選條件範例 – 請參閱 [執行 CodeBuild 的 GitHub 提取請求和 Webhook 篩選條件範例](sample-github-pull-request.md)  |  此範例說明如何使用 GitHub Enterprise Server 儲存庫建立提取請求。它還顯示如何啟用 Webhook，以便 CodeBuild 每次將程式碼變更推送到您的 GitHub Enterprise Server 儲存庫時重建原始程式碼。  | 

# 執行 CodeBuild 的「Bitbucket pull request and Webhook filter」範例
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild 當來源儲存庫為 Bitbucket 時， 支援 Webhook。這表示對於在 Bitbucket 儲存庫中存放其原始碼的 CodeBuild 組建專案，Webhook 可用來在每次將程式碼變更推送至儲存庫時重建原始碼。如需詳細資訊，請參閱[Bitbucket Webhook 事件](bitbucket-webhook.md)。

此範例示範如何使用 Bitbucket 儲存庫建立提取請求。它還說明如何使用 Bitbucket Webhook 來觸發 CodeBuild 來建立專案的建置。

**注意**  
使用 Webhook 時，使用者可能會觸發非預期的建置。若要降低此風險，請參閱 [使用 Webhook 的最佳實務](webhooks.md#webhook-best-practices)。

**Topics**
+ [先決條件](#sample-bitbucket-pull-request-prerequisites)
+ [步驟 1：使用 Bitbucket 建立建置專案並啟用 Webhook](#sample-bitbucket-pull-request-create)
+ [步驟 2：使用 Bitbucket Webhook 觸發組建](#sample-bitbucket-pull-request-trigger)

## 先決條件
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 若要執行此範例，您必須將 AWS CodeBuild 專案與您的 Bitbucket 帳戶連線。

**注意**  
 CodeBuild 已更新其使用 Bitbucket 的許可。如果您之前已將專案連線至 Bitbucket，但現在收到 Bitbucket 連線錯誤，則必須重新連線以授予 CodeBuild 許可來管理您的 Webhook。

## 步驟 1：使用 Bitbucket 建立建置專案並啟用 Webhook
<a name="sample-bitbucket-pull-request-create"></a>

 下列步驟說明如何使用 Bitbucket 建立 AWS CodeBuild 專案做為來源儲存庫，並啟用 Webhook。

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

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

1. 選擇 **Create build project (建立建置專案)**。

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

1. 在 **Source (來源)** 中：  
**來源提供者**  
選擇 **Bitbucket**。依照指示來連接 （或重新連線） 與 Bitbucket，然後選擇**授權**。  
**儲存庫**  
在**我的 Bitbucket 帳戶中選擇儲存庫**。  
如果您先前尚未連線到 Bitbucket 帳戶，請輸入您的 Bitbucket 使用者名稱和密碼，然後選取**儲存 Bitbucket 登入**資料。  
**Bitbucket 儲存庫**  
輸入 Bitbucket 儲存庫的 URL。

1. 在**主要來源 Webhook 事件**中，選取下列項目。
**注意**  
只有在您在上一個步驟**的我的 Bitbucket 帳戶中選擇儲存庫**時，才會顯示**主要來源 Webhook 事件**區段。

   1. 當您建立專案時，請選取 **Rebuild every time a code change is pushed to this repository (在每次將程式碼變更推送至此儲存庫時重建)**。

   1. 從 **Event type (事件類型)**，選擇一或多個事件。

   1. 若要篩選事件觸發組建的時間，請在 **Start a build under these conditions (在這些情況下開始組建)** 下新增一或多個選用的篩選條件。

   1. 若要篩選何時不觸發事件，請在 **Don't start a build under these conditions (在這些情況下不開始組建)** 下新增一或多個選用的篩選條件。

   1. 如有需要，請選擇**新增篩選條件群組**以新增另一個篩選條件群組。

   如需 Bitbucket Webhook 事件類型和篩選條件的詳細資訊，請參閱 [Bitbucket Webhook 事件](bitbucket-webhook.md)。

1. 在 **Environment (環境)** 中：  
**環境映像**  
選擇下列其中一項：    
若要使用由 管理的 Docker 映像 AWS CodeBuild：  
選擇**受管映像**，然後從**作業系統**、**執行時間**、**映像**和**映像版本**進行選擇。若可用，請從 **Environment type (環境類型)** 進行選擇。  
若要使用另一個 Docker 映像：  
選擇**自訂映像**。針對**環境類型**，選擇 **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 《 使用者指南*》中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。  
**服務角色**  
選擇下列其中一項：  
   + 如果您沒有 CodeBuild 服務角色，請選擇**新服務角色**。在**角色名稱**中，輸入新角色的名稱。
   + 如果您有 CodeBuild 服務角色，請選擇**現有服務角色**。在**角色 ARN** 中，選擇服務角色。
當您使用 主控台建立或更新組建專案時，您可以同時建立 CodeBuild 服務角色。根據預設，此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯，則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

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

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

1. 在 **Artifacts (成品)** 中：  
**類型**  
選擇下列其中一項：  
   + 如果您不要建立建置輸出成品，則請選擇 **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` 描述。  
**其他組態**  
展開 **Additional configuration (其他組態)**，並適當地設定選項。

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

## 步驟 2：使用 Bitbucket Webhook 觸發組建
<a name="sample-bitbucket-pull-request-trigger"></a>

對於使用 Bitbucket Webhook 的專案，當 Bitbucket 儲存庫偵測到原始程式碼變更時， 會 AWS CodeBuild 建立組建。

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

1. 在導覽窗格上，選擇 **Build projects (建置專案)**，然後選擇與帶有 Webhook 的 Bitbucket 儲存庫相關聯的專案。如需建立 Bitbucket Webhook 專案的詳細資訊，請參閱 [步驟 1：使用 Bitbucket 建立建置專案並啟用 Webhook](#sample-bitbucket-pull-request-create)。

1. 在專案的 Bitbucket 儲存庫中對程式碼做些變更。

1. 在 Bitbucket 儲存庫上建立提取請求。如需詳細資訊，請參閱[提出提取請求](https://www.atlassian.com/git/tutorials/making-a-pull-request)。

1. 在 Bitbucket Webhook 頁面中，選擇 **View request (檢視請求)** 來查看最近事件的清單。

1. 選擇**檢視詳細資訊**，以查看 CodeBuild 傳回之回應的詳細資訊。這看起來類似下述：

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. 導覽至 Bitbucket 提取請求頁面來查看組建狀態。

# 執行 CodeBuild 的 GitHub Enterprise Server 範例
<a name="sample-github-enterprise"></a>

AWS CodeBuild 支援 GitHub Enterprise Server 做為來源儲存庫。此範例示範如何在 GitHub Enterprise Server 儲存庫安裝憑證時設定 CodeBuild 專案。它還顯示如何啟用 Webhook，以便 CodeBuild 每次將程式碼變更推送到您的 GitHub Enterprise Server 儲存庫時重建原始程式碼。

**Topics**
+ [先決條件](#sample-github-enterprise-prerequisites)
+ [步驟 1：使用 GitHub Enterprise Server 建立建置專案並啟用 Webhook](#sample-github-enterprise-running)

## 先決條件
<a name="sample-github-enterprise-prerequisites"></a>

1. 為您的 CodeBuild 專案產生個人存取字符。建議您建立 GitHub Enterprise 使用者，並產生此使用者的個人存取字符。將其複製到剪貼簿，以便在建立 CodeBuild 專案時使用。如需詳細資訊，請參閱 GitHub Help 網站上的 [Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/)。

   當您建立個人存取字符時，請在定義中包含 **repo** 範圍。  
![\[定義中的儲存庫範圍。\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/images/scopes.png)

1. 從 GitHub Enterprise Server 下載您的憑證。CodeBuild 使用憑證來建立與儲存庫的信任 SSL 連線。

   **Linux/macOS 用戶端：**

   從終端機視窗中，執行下列命令：

   ```
   echo -n | openssl s_client -connect HOST:PORTNUMBER \
       | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem
   ```

   將命令中的預留位置取代為下列值：

   *HOST*。GitHub Enterprise Server 儲存庫的 IP 地址。

   *PORTNUMBER*。您用來連線的連接埠號碼 (例如 443)。

   *folder*。從中下載您憑證的資料夾。

   *filename*。您憑證檔案的檔案名稱。
**重要**  
將憑證儲存為 .pem 檔案。

   **Windows 用戶端：**

   使用瀏覽器從 GitHub Enterprise 下載您的憑證。若要查看網站的憑證詳細資訊，請選擇鎖定圖示。如需如何匯出憑證的資訊，請參閱您的瀏覽器文件。
**重要**  
將憑證儲存為 .pem 檔案。

1. 將憑證檔案上傳至 S3 儲存貯體。如需如何建立 S3 儲存貯體的資訊，請參閱[如何建立 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) 如需如何將物件上傳至 S3 儲存貯體的資訊，請參閱[如何將檔案和資料夾上傳至儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)
**注意**  
此儲存貯體必須與 建置位於相同的 AWS 區域。例如，如果您指示 CodeBuild 在美國東部 （俄亥俄） 區域執行組建，則儲存貯體必須位於美國東部 （俄亥俄） 區域。

## 步驟 1：使用 GitHub Enterprise Server 建立建置專案並啟用 Webhook
<a name="sample-github-enterprise-running"></a>

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. 在**來源**中，在**來源提供者**中選擇 **GitHub Enterprise Server**。
   + 選擇**管理帳戶登入**資料，然後選擇**個人存取字符**。針對**服務**，選擇 **Secrets Manager （建議）**，然後設定您的秘密。然後在 中**，GitHub Enterprise 個人存取字符**中，輸入您的個人存取字符，然後選擇**儲存**。
   + 在 **Repository URL (儲存庫 URL)** 中，輸入儲存庫的路徑，包括儲存庫的名稱。
   + 展開 **Additional configuration (其他組態)**。
   + 選取 **Rebuild every time a code change is pushed to this repository (在每次將程式碼變更推送至儲存庫時重建)**，以便每次程式碼變更推送至此儲存庫時就重建。
   + 選取 **Enable insecure SSL (啟用不安全 SSL)**，在連線至 GitHub Enterprise Server 專案儲存庫時忽略 SSL 警告。
**注意**  
建議只將 **Enable insecure SSL (啟用不安全 SSL)** 用於測試。不應用於生產環境。  
![\[GitHub Enterprise Server 專案儲存庫組態。\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/images/github-enterprise.png)

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. 展開 **Additional configuration (其他組態)**。

   如果您希望 CodeBuild 使用您的 VPC：
   + 針對 **VPC**，選擇 CodeBuild 使用的 VPC ID。
   + 對於 **VPC 子網路**，選擇包含 CodeBuild 使用之資源的子網路。
   + 針對 **VPC 安全群組**，選擇 CodeBuild 用來允許存取 VPCs 中資源的安全群組。

   如需詳細資訊，請參閱[AWS CodeBuild 搭配 Amazon Virtual Private Cloud 使用](vpc-support.md)。

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. 針對 **Cache type (快取類型)**，選擇以下其中一項：
   + 如果您不想要使用快取，請選擇 **No cache (無快取)**。
   + 如果您想要使用 Amazon S3 快取，請選擇 **Amazon S3**，然後執行下列動作：
     + 針對 **Bucket (儲存貯體)**，選擇存放快取的 S3 儲存貯體名稱。
     + （選用） 對於**快取路徑字首**，輸入 Amazon S3 路徑字首。**Cache path prefix (快取路徑字首)** 值類似目錄名稱。它可讓您將快取存放至儲存貯體的相同目錄下方。
**重要**  
請不要在路徑字首結尾附加尾端斜線 (/)。
   +  如果您想要使用本機快取，請選擇 **Local (本機)**，然後選擇一或多個本機快取模式。
**注意**  
「Docker layer cache」(Docker 層快取) 模式僅適用於 Linux。如果您選擇此模式，您的專案必須以特殊權限模式執行。

   使用快取可節省大量建置時間，因為建置環境的可重複使用部分存放在快取中，並用於各建置。如需在 buildspec 檔案中指定快取的詳細資訊，請參閱[Buildspec 語法](build-spec-ref.md#build-spec-ref-syntax)。如需快取的詳細資訊，請參閱「[快取建置以改善效能](build-caching.md)」。

1. 選擇 **Create build project (建立建置專案)**。在組建專案頁面上，選擇 **Start build (啟動組建)**。

# 執行 CodeBuild 的 GitHub 提取請求和 Webhook 篩選條件範例
<a name="sample-github-pull-request"></a>

AWS CodeBuild 當來源儲存庫為 GitHub 時， 支援 Webhook。這表示對於在 GitHub 儲存庫中存放其原始碼的 CodeBuild 組建專案，Webhook 可用來在每次將程式碼變更推送至儲存庫時重建原始碼。如需 CodeBuild 範例，請參閱[AWS CodeBuild 範例](https://github.com/aws-samples/aws-codebuild-samples)。

**注意**  
使用 Webhook 時，使用者可能會觸發非預期的建置。若要降低此風險，請參閱 [使用 Webhook 的最佳實務](webhooks.md#webhook-best-practices)。

**Topics**
+ [步驟 1：使用 GitHub 建立建置專案並啟用 Webhook](#sample-github-pull-request-running)
+ [步驟 2：確認已啟用 Webhook](#verification-checks)

## 步驟 1：使用 GitHub 建立建置專案並啟用 Webhook
<a name="sample-github-pull-request-running"></a>

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

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

1. 選擇 **Create build project (建立建置專案)**。

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

1. 在 **Source (來源)** 中：  
**來源提供者**  
選擇 **GitHub**。請遵循說明來與 GitHub 連線 (或重新連線)，然後選擇 **Authorize (授權)**。  
**儲存庫**  
選擇 **Repository in my GitHub account (GitHub 帳戶中的儲存庫)**。  
**GitHub 儲存庫**  
輸入 GitHub 儲存庫的 URL。

1. 在**主要來源 Webhook 事件**中，選取下列項目。
**注意**  
只有在您在上一個步驟**的 GitHub 帳戶中選擇儲存庫**時，才會顯示**主要來源 Webhook 事件**區段。

   1. 當您建立專案時，請選取 **Rebuild every time a code change is pushed to this repository (在每次將程式碼變更推送至此儲存庫時重建)**。

   1. 從 **Event type (事件類型)**，選擇一或多個事件。

   1. 若要篩選事件觸發組建的時間，請在 **Start a build under these conditions (在這些情況下開始組建)** 下新增一或多個選用的篩選條件。

   1. 若要篩選何時不觸發事件，請在 **Don't start a build under these conditions (在這些情況下不開始組建)** 下新增一或多個選用的篩選條件。

   1. 如有需要，請選擇**新增篩選條件群組**以新增另一個篩選條件群組。

   如需 GitHub Webhook 事件類型和篩選條件的詳細資訊，請參閱 [GitHub Webhook 事件](github-webhook.md)。

1. 在 **Environment (環境)** 中：  
**環境映像**  
選擇下列其中一項：    
若要使用由 管理的 Docker 映像 AWS CodeBuild：  
選擇**受管映像**，然後從**作業系統**、**執行時間**、**映像**和**映像版本**進行選擇。若可用，請從 **Environment type (環境類型)** 進行選擇。  
若要使用另一個 Docker 映像：  
選擇**自訂映像**。針對**環境類型**，選擇 **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 《 使用者指南*》中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。  
**服務角色**  
選擇下列其中一項：  
   + 如果您沒有 CodeBuild 服務角色，請選擇**新服務角色**。在**角色名稱**中，輸入新角色的名稱。
   + 如果您有 CodeBuild 服務角色，請選擇**現有服務角色**。在**角色 ARN** 中，選擇服務角色。
當您使用 主控台建立或更新組建專案時，您可以同時建立 CodeBuild 服務角色。根據預設，此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯，則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

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

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

1. 在 **Artifacts (成品)** 中：  
**類型**  
選擇下列其中一項：  
   + 如果您不要建立建置輸出成品，則請選擇 **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` 描述。  
**其他組態**  
展開 **Additional configuration (其他組態)**，並適當地設定選項。

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

## 步驟 2：確認已啟用 Webhook
<a name="verification-checks"></a>

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

1. 在導覽窗格中，選擇 **Build projects (建置專案)**。

1. 執行以下任意一項：
   + 選擇具有您想要驗證之 Webhook 建置專案的連結，然後選擇 **Build details (建置詳細資訊)**。
   + 選擇建置專案旁的按鈕，其中包含您要驗證的 Webhook，選擇**檢視詳細資訊**，然後選擇**建置詳細資訊**索引標籤。

1. 在**主要來源 Webhook 事件**中，選擇 **Webhook** URL 連結。

1. 在您的 GitHub 儲存庫中，在 **Settings (設定)** 頁面的 **Webhooks** 下方，確認 **Pull Requests (提取請求)** 和 **Pushes (推送)** 已選取。

1. 在您的 GitHub 設定檔設定中，在**個人設定**、**應用程式**、**授權 OAuth 應用程式**下，您應該會看到您的應用程式已獲授權存取您選取的 AWS 區域。

# 教學課程：使用 S3 進行憑證儲存的 CodeBuild 中使用 Fastlane 簽署 Apple 程式碼
<a name="sample-fastlane"></a>

[fastlane](https://docs.fastlane.tools/) 是熱門的開放原始碼自動化工具，可自動化 iOS 和 Android 應用程式的 Beta 版部署和版本。它會處理所有繁瑣的任務，例如產生螢幕擷取畫面、處理程式碼簽署，以及釋出您的應用程式。

## 先決條件
<a name="sample-fastlane-prerequisites"></a>

若要完成本教學課程，您必須先設定下列項目：
+ 一個 AWS 帳戶
+ [ Apple 開發人員帳戶 ](https://developer.apple.com/)
+ 用於儲存憑證的 S3 儲存貯體
+ 專案中安裝的 fastlane - 安裝 fastlane [的指南 ](https://docs.fastlane.tools/getting-started/ios/setup/) 

## 步驟 1：在本機電腦上設定與 S3 的 Fastlane Match
<a name="sample-fastlane-S3"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) 是 [ Fastlane 工具](https://fastlane.tools/)之一，允許在您的本機開發環境和 CodeBuild 上進行程式碼簽署的無縫組態。Fastlane Match 會將所有程式碼簽署憑證和佈建設定檔存放在 Git 儲存庫/S3 儲存貯體/Google 雲端儲存體中，並在需要時下載和安裝必要的憑證和設定檔。

在此範例組態中，您將設定並使用 Amazon S3 儲存貯體進行儲存。

****

1. 初始化專案中的相符項目：

   ```
   fastlane match init
   ```

1. 出現提示時，請選擇 S3 作為儲存模式。

1. 更新您的 `*Matchfile*` 以使用 S3：

   ```
   storage_mode("s3")
      s3_bucket("your-s3-bucket-name")
      s3_region("your-aws-region")
      type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
   ```

## 步驟 2：設定您的 Fastfile
<a name="sample-fastlane-S3-fastfile"></a>

使用下列通道建立或更新您的 `Fastfile`。

在 CodeBuild 上，每次建置和簽署應用程式時，都需要執行 Fastlane Match。最簡單的方法是將 `match`動作新增至建置您應用程式的通道。

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**注意**  
請務必`setup_ci`將 新增至 中的 `before_all `區段，`Fastfile`配對動作才能正常運作。這可確保使用具有適當許可的暫時 Fastlane 金鑰鏈。如果不使用此功能，您可能會看到建置失敗或結果不一致。



## 步驟 3：執行 `fastlane match`命令來產生個別的憑證和設定檔
<a name="sample-fastlane-S3-certificates"></a>

指定類型 （即開發、應用程式存放區、臨機操作、企業） 的 fastlane 比對命令會在遠端存放區中無法使用時產生憑證和設定檔。憑證和設定檔將由 fastlane 存放在 S3 中。

```
bundle exec fastlane match appstore
```

命令執行將為互動式，而 fastlane 將要求 設定用於解密憑證的複雜密碼。

## 步驟 4：為您的專案建立應用程式檔案
<a name="sample-fastlane-S3-appfile"></a>

為您的專案建立或新增適當的應用程式檔案。

****

1. 根據您的專案建置需求建立或新增 [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile)、[Appfile](http://docs.fastlane.tools/advanced/Appfile/)、[Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile)、[Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)。

1. 遞交遠端儲存庫的變更

## 步驟 5：在 Secrets Manager 中建立環境變數
<a name="sample-fastlane-S3-secrets"></a>

建立兩個秘密來存放 fastlane 工作階段 Cookie 和相符的複雜密碼。如需在 Secrets Manager 中建立秘密的詳細資訊，請參閱[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

****

1. 存取您的 Fastlane 工作階段 Cookie，如下所示。

   1. 私密金鑰 - `FASTLANE_SESSION`

   1. 秘密值 - 在本機電腦上執行下列命令所產生的工作階段 Cookie。
**注意**  
在本機檔案中進行身分驗證後，即可使用此值：`~/.fastlane/spaceship/my_appleid_username/cookie`。

      ```
      fastlane spaceauth -u <apple account>
      ```

1. Fastlane Match 密碼短語 - 若要讓 Fastlane Match 解密存放在 S3 儲存貯體中的憑證和設定檔，必須將您在比對設定步驟中設定的加密密碼短語新增至 CodeBuild 專案的環境變數。

   1. 私密金鑰 - `MATCH_PASSWORD`

   1. 秘密值 - *<配對密碼短語以解密憑證>*。在步驟 3 中產生憑證時會設定密碼短語。

**注意**  
在 Secrets Manager 中建立上述秘密時，請記得提供具有下列字首的秘密名稱： `/CodeBuild/`

## 步驟 6：建立運算機群
<a name="sample-fastlane-S3-fleet"></a>

為您的專案建立運算機群。

****

1. 在 主控台中，前往 CodeBuild 並建立新的運算機群。

1. 選擇「macOS」做為作業系統，然後選取適當的運算類型和映像。

## 步驟 7：在 CodeBuild 中建立專案
<a name="sample-fastlane-S3-project"></a>

在 CodeBuild 中建立您的專案。



****

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

1. 建立建置專案。如需詳細資訊，請參閱 [建立組建專案 (主控台)](create-project.md#create-project-console) 及 [執行建置 (主控台)](run-build-console.md)。

1. 設定您的來源提供者 （例如 GitHub、CodeCommit)。這是 iOS 專案來源儲存庫，而不是憑證儲存庫。

1.  在 **Environment (環境)** 中：
   + 選擇**預留容量**。
   + 針對**機群**，選取上面建立的機群。
   + 提供 CodeBuild 為您建立的服務角色名稱。
   + 提供下列環境變數。
     + 名稱：`MATCH_PASSWORD`、值：*<secrets arn>*、類型：Secrets Manager （在步驟 5 中為 MATCH\$1PASSWORD 建立的秘密 ARN)
     + 名稱：`FASTLANE_SESSION`、值：*<secrets arn>*、類型：Secrets Manager （在步驟 5 中為 FASTLANE\$1SESSION 建立的秘密 ARN)

1. 在 **Buildspec** 中，新增下列項目：

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## 步驟 8：設定 IAM 角色
<a name="sample-fastlane-S3-role"></a>

建立專案後，請確定 CodeBuild 專案的服務角色具有存取包含憑證的 S3 儲存貯體的許可。將下列政策新增至角色：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name/*"
        }
    ]
}
```

------

## 步驟 9：執行建置
<a name="sample-fastlane-S3-run"></a>

執行組建。您可以在 CodeBuild 中檢閱建置狀態和日誌。

任務完成後，您將能夠檢視任務的日誌。

## 疑難排解
<a name="sample-fastlane-S3-troubleshooting"></a>
+ 如果您在擷取憑證時遇到問題，請確定您的 IAM 許可已正確設定為 S3 存取。
+ 如果您在憑證解密時遇到問題，請確定您在 MATCH\$1PASSWORD 環境變數中設定正確的複雜密碼。
+ 對於程式碼簽署問題，請確認您的 Apple 開發人員帳戶具有必要的憑證和設定檔，而且 Xcode 專案中的套件識別符符合佈建設定檔中的項目。

## 安全考量
<a name="sample-fastlane-considerations"></a>

以下是本教學課程的安全性考量事項。
+ 確保您的 S3 儲存貯體具有適當的安全設定，包括靜態加密。特別是，請確定儲存貯體沒有公有存取權，並限制只有 CodeBuild 和需要具有存取權的系統才能存取。
+ 考慮使用 AWS Secrets Manager 來儲存敏感資訊，例如 MATCH\$1PASSWORD 和 FASTLANE\$1SESSION。

此範例提供使用 Amazon S3 進行憑證儲存的 CodeBuild 中 Fastlane 的 iOS 程式碼簽署設定。您可能需要根據您的特定專案需求和 CodeBuild 環境來調整一些步驟。此方法利用 AWS 服務在 AWS 生態系統中增強安全性和整合。

# 教學課程：使用 GitHub 在 CodeBuild 中使用 Fastlane 簽署 Apple 程式碼以進行憑證儲存
<a name="sample-fastlane-github"></a>

[fastlane](https://docs.fastlane.tools/) 是熱門的開放原始碼自動化工具，可自動化 iOS 和 Android 應用程式的 Beta 版部署和版本。它會處理所有繁瑣的任務，例如產生螢幕擷取畫面、處理程式碼簽署，以及釋出您的應用程式。

此範例示範如何在在 Mac 機群上執行的 CodeBuild 專案中使用 Fastlane 設定 Apple 程式碼簽署，並將 GitHub 做為憑證和佈建設定檔的儲存體。

## 先決條件
<a name="sample-fastlane-github-prerequisites"></a>

若要完成本教學課程，您必須先設定下列項目：
+ 一個 AWS 帳戶
+ [ Apple 開發人員帳戶 ](https://developer.apple.com/)
+ 用於儲存憑證的私有 GitHub 儲存庫
+ 專案中安裝的 fastlane - 安裝 fastlane [的指南 ](https://docs.fastlane.tools/getting-started/ios/setup/) 

## 步驟 1：在本機電腦上使用 GitHub 設定 Fastlane Match
<a name="sample-fastlane-github-certificates"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) 是 [ Fastlane 工具](https://fastlane.tools/)之一，允許在您的本機開發環境和 CodeBuild 上進行程式碼簽署的無縫組態。Fastlane Match 會將所有程式碼簽署憑證和佈建設定檔儲存在 Git 儲存庫/S3 儲存貯體/Google 雲端儲存中，並在需要時下載和安裝必要的憑證和設定檔。

在此範例組態中，我們將設定和使用 Git 儲存庫進行儲存。

****

1. 初始化專案中的相符項目：

   ```
   fastlane match init
   ```

1. 出現提示時，請選擇 GitHub 做為儲存模式。

1. 更新您的 `*Matchfile*` 以使用 GitHub：

   ```
   git_url("https://github.com/your-username/your-certificate-repo.git")
   storage_mode("git")
   type("development") # The default type, can be: appstore, adhoc, enterprise or development
   ```

**注意**  
請務必輸入 Git 儲存庫的 HTTPS URL，以便 Fastlane 成功驗證和複製。否則，當您嘗試使用配對時，可能會看到身分驗證錯誤。

## 步驟 2：設定您的 Fastfile
<a name="sample-fastlane-github-fastfile"></a>

使用下列通道建立或更新您的 `Fastfile`。

在 CodeBuild 上，每次建置和簽署應用程式時，都需要執行 Fastlane Match。最簡單的方法是將 `match`動作新增至建置您應用程式的通道。

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**注意**  
請務必`setup_ci`將 新增至 中的 `before_all `區段，`Fastfile`配對動作才能正常運作。這可確保使用具有適當許可的暫時 Fastlane 金鑰鏈。如果不使用此功能，您可能會看到建置失敗或結果不一致。

## 步驟 3：執行 `fastlane match`命令來產生個別的憑證和設定檔
<a name="sample-fastlane-github-certificates"></a>

指定類型 （即開發、應用程式存放區、臨機操作、企業） 的 fastlane 比對命令會在遠端存放區中無法使用時產生憑證和設定檔。憑證和設定檔將由 fastlane 存放在 GitHub 中。

```
bundle exec fastlane match appstore
```

命令執行將為互動式，而 fastlane 將要求 設定用於解密憑證的複雜密碼。

## 步驟 4：為您的專案建立應用程式檔案
<a name="sample-fastlane-github-appfile"></a>

為您的專案建立或新增適當的應用程式檔案。

****

1. 根據您的專案建置需求建立或新增 [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile)、[Appfile](http://docs.fastlane.tools/advanced/Appfile/)、[Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile)、[Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)。

1. 遞交遠端儲存庫的變更。

## 步驟 5：在 Secrets Manager 中建立環境變數
<a name="sample-fastlane-github-secrets"></a>

建立三個秘密來存放 fastlane 工作階段 Cookie 和相符的複雜密碼。如需在 Secrets Manager 中建立秘密的詳細資訊，請參閱[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

****

1. 存取您的 Fastlane 工作階段 Cookie，如下所示。

   1. 私密金鑰 - `FASTLANE_SESSION`

   1. 秘密值 - 在本機電腦上執行下列命令所產生的工作階段 Cookie。
**注意**  
在本機檔案中進行身分驗證後，即可使用此值：`~/.fastlane/spaceship/my_appleid_username/cookie`。

      ```
      fastlane spaceauth -u <Apple_account>
      ```

1. Fastlane Match 密碼短語 - 若要讓 Fastlane Match 解密存放在 Git 儲存庫中的憑證和設定檔，必須將您在比對設定步驟中設定的加密密碼短語新增至 CodeBuild 專案的環境變數。

   1. 私密金鑰 - `MATCH_PASSWORD`

   1. 秘密值 - `<match passphrase to decrypt certificates>`。在步驟 3 中產生憑證時會設定密碼短語。

1. Fastlane `MATCH_GIT_BASIC_AUTHORIZATION` - 設定*比對*的基本授權：

   1. 私密金鑰：

      `MATCH_GIT_BASIC_AUTHORIZATION`

   1. 秘密值 - 值應該是您的使用者名稱和個人存取字符 (PAT) 的 base64 編碼字串，格式為 `username:password`。您可以使用下列命令產生它：

      ```
      echo -n your_github_username:your_personal_access_token | base64
      ```

      您可以在**設定檔 > 設定 > 開發人員設定 > 個人存取字符**的 GitHub 主控台上產生 PAT。如需詳細資訊，請參閱下列指南：https：//[https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)。

**注意**  
在 Secrets Manager 中建立上述秘密時，請記得提供具有下列字首的秘密名稱： `/CodeBuild/`

## 步驟 6：建立運算機群
<a name="sample-fastlane-github-fleet"></a>

為您的專案建立運算機群。

****

1. 在 主控台中，前往 CodeBuild 並建立新的運算機群。

1. 選擇 `macOS`做為作業系統，然後選取適當的運算類型和映像。

## 步驟 7：在 CodeBuild 中建立專案
<a name="sample-fastlane-github-project"></a>

在 CodeBuild 中建立您的專案。

****

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

1. 建立建置專案。如需詳細資訊，請參閱 [建立組建專案 (主控台)](create-project.md#create-project-console) 及 [執行建置 (主控台)](run-build-console.md)。

1. 設定您的來源提供者 （例如 GitHub、CodeCommit)。這是 iOS 專案來源儲存庫，而不是憑證儲存庫。

1.  在 **Environment (環境)** 中：
   + 選擇**預留容量**。
   + 針對**機群**，選取上面建立的機群。
   + 提供 CodeBuild 為您建立的服務角色名稱。
   + 提供下列環境變數。
     + 名稱：`MATCH_PASSWORD`、值：*<secrets arn>*、類型：Secrets Manager （在步驟 5 中為 MATCH\$1PASSWORD 建立的秘密 ARN)
     + 名稱：`FASTLANE_SESSION`、值：*<secrets arn>*、類型：Secrets Manager （在步驟 5 中為 FASTLANE\$1SESSION 建立的秘密 ARN)
     + 名稱：`MATCH_GIT_BASIC_AUTHORIZATION`、值：*<secrets ARN>*、類型：Secrets Manager Secrets ARN （在步驟 5 為 建立`MATCH_GIT_BASIC_AUTHORIZATION`)

1. 在 **Buildspec** 中，新增下列項目：

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## 步驟 8：執行建置
<a name="sample-fastlane-github-run"></a>

執行組建。您可以在 CodeBuild 中檢閱建置狀態和日誌。

任務完成後，您就可以檢視任務的日誌。

## 疑難排解
<a name="sample-fastlane-github-troubleshooting"></a>
+ 如果您在存取 GitHub 儲存庫時遇到問題，請仔細檢查您的個人存取字符和 MATCH\$1GIT\$1BASIC\$1AUTHORIZATION 環境變數。
+ 如果您在憑證解密時遇到問題，請確定您在 MATCH\$1PASSWORD 環境變數中設定正確的密碼短語。
+ 對於程式碼簽署問題，請確認您的 Apple Developer 帳戶具有必要的憑證和設定檔，而且 Xcode 專案中的套件識別符符合佈建設定檔中的項目。

## 安全考量
<a name="sample-fastlane-github-considerations"></a>

以下是本教學課程的安全考量。
+ 將憑證的 GitHub 儲存庫保持私有，並定期稽核存取權。
+ 考慮使用 AWS Secrets Manager 來儲存敏感資訊，例如 MATCH\$1PASSWORD 和 FASTLANE\$1SESSION。

此範例提供使用 GitHub 進行憑證儲存的 CodeBuild 中 Fastlane 的 iOS 程式碼簽署設定。您可能需要根據您的特定專案需求和 CodeBuild 環境來調整一些步驟。此方法利用 AWS 服務在 AWS 生態系統中增強安全性和整合。