

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

# 教學課程：從 Image Builder 主控台精靈建立具有輸出 Docker 容器映像的映像管道
<a name="start-build-container-pipeline"></a>

本教學課程將逐步引導您建立自動化管道，以使用建立映像管道主控台精靈來建置和維護自訂的 EC2 Image Builder Docker 映像。 ****為了協助您有效率地進行步驟，預設設定會在可用時使用，並略過選用區段。

**Topics**
+ [步驟 1：指定管道詳細資訊](#start-build-container-step1)
+ [步驟 2：選擇配方](#start-build-container-step2)
+ [步驟 3：定義基礎設施組態 - 選用](#start-build-container-step3)
+ [步驟 4：定義分佈設定 - 選用](#start-build-container-step4)
+ [步驟 5：檢視](#start-build-container-step5)
+ [步驟 6：清除](#start-build-container-cleanup)

## 步驟 1：指定管道詳細資訊
<a name="start-build-container-step1"></a>

1. 開啟 EC2 Image Builder 主控台，位於 [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 若要開始建立管道，請選擇**建立映像管道**。

1. 在**一般**區段中，輸入您的**管道名稱 **(*必要*)。

1. 在**建置排程**區段中，您可以保留**排程選項**的預設值。請注意，預設排程顯示的**時區**是國際標準時間 (UTC)。如需 UTC 時間的詳細資訊，以及尋找時區的偏移量，請參閱[時區縮寫 – 全球清單](https://www.timeanddate.com/time/zones/)。

   對於**相依性更新設定**，**如果有相依性更新選項，請在排程時間選擇執行管道**。此設定會導致您的管道在開始建置之前檢查更新。如果沒有更新，則會略過排定的管道建置。
**注意**  
為了確保您的管道能如預期辨識相依性更新和建置，您必須對基礎映像和元件使用語意版本控制 (x.x.x)。若要進一步了解映像建置器資源的語意版本控制，請參閱[Image Builder 中的語意版本控制](ibhow-semantic-versioning.md)。

1. 選擇**下一步**以繼續下一個步驟。

## 步驟 2：選擇配方
<a name="start-build-container-step2"></a>

1. Image Builder 預設為**使用配方區段中的現有****配方**。第一次通過時，請選擇**建立新配方**選項。

1. 在**映像類型**區段中，選擇 **Docker 映像**選項來建立容器管道，以產生 Docker 映像並將其分發至目標區域中的 Amazon ECR 儲存庫。

1. 在**一般**區段中，輸入下列必要方塊：
   + **名稱** – 您的配方名稱
   + **版本** – 您的配方版本 （使用格式 *<major>.<minor>.<patch>*，其中主要、次要和修補程式是整數值）。新配方通常以 開頭`1.0.0`。

1. 在**來源映像**區段中，保留**選取映像**、**映像作業系統 (OS)** 和**映像原始**伺服器的預設值。這會產生由 Amazon 管理的 Amazon Linux 2 容器映像清單，讓您從基本映像中選擇。

   1. 從**映像名稱**下拉式清單中，選擇映像。

   1. 保留**自動版本控制選項的預設值 **(**使用最新的可用作業系統版本**)。
**注意**  
此設定可確保管道對基礎映像使用語意版本控制，以偵測自動排程任務的相依性更新。若要進一步了解映像建置器資源的語意版本控制，請參閱[Image Builder 中的語意版本控制](ibhow-semantic-versioning.md)。

1. 在**元件**區段中，您可以選擇不新增任何元件並繼續。如果您想要新增元件，您可以在**建置元件 – Amazon Linux** 面板中瀏覽頁面上列出的元件。使用右上角的分頁控制項，導覽您的基礎映像作業系統可用的其他元件。您也可以搜尋特定元件，或使用元件管理員建立自己的建置元件。

   在本教學課程中，請選擇以最新安全性更新更新 Linux 的元件，如下所示：

   1. 透過在面板頂端的搜尋列`update`中輸入字詞來篩選結果。

   1. 選取`update-linux`建置元件的核取方塊。

   1. 向下捲動，然後在**選取的元件**清單的右上角，選擇**展開所有** 。

   1. 保留**版本控制選項**的預設值 (**使用最新的可用元件版本**)。
**注意**  
此設定可確保您的管道針對選取的元件使用語意版本控制，以偵測自動排程任務的相依性更新。若要進一步了解映像建置器資源的語意版本控制，請參閱[Image Builder 中的語意版本控制](ibhow-semantic-versioning.md)。

      如果您已選取具有輸入參數的元件，您也會在此區域中看到參數。本教學課程未涵蓋參數。如需在元件中使用輸入參數並在配方中設定這些參數的詳細資訊，請參閱 [教學課程：使用輸入參數建立自訂元件](tutorial-component-parameters.md)。

**重新排序元件 （選用）**  
如果您已選擇要包含在映像中的多個元件，您可以使用drag-and-drop動作，將它們重新排列為在建置過程中應執行的順序。
**注意**  
CIS 強化元件未遵循 Image Builder 配方中的標準元件排序規則。CIS 強化元件一律會最後執行，以確保基準測試會針對您的輸出映像執行。

   1. 向上捲動至可用元件的清單。

   1. 選取`update-linux-kernel-mainline`建置元件 （或您選擇的任何其他元件） 的核取方塊。

   1. 向下捲動至**選取的元件**清單，以查看至少有兩個結果。

   1. 新增的元件可能未擴展其版本控制。若要展開**版本控制選項**，您可以選擇**版本控制選項**旁的箭頭，也可以切換關閉和開啟**全部展開**，以展開所有所選元件的版本控制。

   1. 選擇其中一個元件，然後向上或向下拖曳以變更元件執行的順序。

   1. 若要移除`update-linux-kernel-mainline`元件，`X`請從元件方塊的右上角選擇 。

   1. 重複上一個步驟，移除您可能新增的任何其他元件，只保留選取的`update-linux`元件。

1. 在 **Dockerfile 範本**區段中，選取**使用範例**選項。在**內容**面板中，請注意 Image Builder 根據容器映像配方放置建置資訊或指令碼的內容變數。

   根據預設，Image Builder 會在您的 Dockerfile 中使用下列內容變數。

      
**parentImage （必要）**  
在建置時，此變數會解析為配方的基本映像。  
範例：  

   ```
   FROM
   {{{ imagebuilder:parentImage }}}
   ```  
**環境 （如果指定元件則為必要）**  
此變數會解析為執行元件的指令碼。  
範例：  

   ```
   {{{ imagebuilder:environments }}}
   ```  
**元件 （選用）**  
Image Builder 會解析容器配方包含之元件的建置和測試元件指令碼。此變數可以放置在環境變數之後 Dockerfile 的任何位置。  
範例：  

   ```
   {{{ imagebuilder:components }}}
   ```

1. 在**目標儲存庫**區段中，指定您建立做為本教學課程先決條件的 Amazon ECR 儲存庫名稱。此儲存庫會用作管道執行所在區域 （區域 1) 中分佈組態的預設設定。
**注意**  
在分佈之前，目標儲存庫必須存在於所有目標區域的 Amazon ECR 中。

1. 選擇**下一步**以繼續下一個步驟。

## 步驟 3：定義基礎設施組態 - 選用
<a name="start-build-container-step3"></a>

Image Builder 會在您的帳戶中啟動 EC2 執行個體，以自訂映像並執行驗證測試。基礎設施組態設定會為將在建置程序 AWS 帳戶 期間於 中執行的執行個體指定基礎設施詳細資訊。

在**基礎設施組態**區段中，**組態選項**預設為 `Create infrastructure configuration using service defaults`。這會建立 IAM 角色和相關聯的執行個體描述檔，供建置執行個體用來設定容器映像。您也可以建立自己的自訂基礎設施組態，或使用您已建立的設定。如需基礎設施組態設定的詳細資訊，請參閱 *EC2 Image Builder API 參考*中的 [CreateInfrastructureConfiguration](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateInfrastructureConfiguration.html)。

在本教學課程中，我們使用預設設定。
+ 選擇**下一步**以繼續下一個步驟。

## 步驟 4：定義分佈設定 - 選用
<a name="start-build-container-step4"></a>

分佈設定包含目標區域和目標 Amazon ECR 儲存庫名稱。輸出 Docker 映像會部署到每個區域中的具名 Amazon ECR 儲存庫。

在**分佈設定**區段中，**組態選項**預設為 `Create distribution settings using service defaults`。此選項會將輸出 Docker 映像分發到您管道執行所在區域的容器配方中指定的 Amazon ECR 儲存庫 （區域 1)。如果您選擇 `Create new distribution settings`，您可以覆寫目前區域的 ECR 儲存庫，並新增更多區域的分佈。

在本教學課程中，我們使用預設設定。
+ 選擇**下一步**以繼續下一個步驟。

## 步驟 5：檢視
<a name="start-build-container-step5"></a>

**檢閱**區段會顯示您已設定的所有設定。若要編輯任何指定區段中的資訊，請選擇步驟區段右上角的**編輯**按鈕。例如，如果您想要變更管道名稱，請選擇**步驟 1：管道詳細資訊**區段右上角的**編輯**按鈕。

1. 檢閱設定後，請選擇**建立管道**以建立管道。

1. 您可以在頁面頂端看到成功或失敗訊息，因為您的資源是針對分佈設定、基礎設施組態、新配方和管道而建立。若要查看資源的詳細資訊，包括資源識別符，請選擇**檢視詳細資訊**。

1. 檢視資源的詳細資訊之後，您可以從導覽窗格中選擇資源類型，以檢視其他資源的詳細資訊。例如，若要查看新管道的詳細資訊，請從導覽窗格中選擇**映像管道**。如果您的建置成功，您的新管道會顯示在**映像管道**清單中。

## 步驟 6：清除
<a name="start-build-container-cleanup"></a>

您的映像建置器環境就像您的家庭一樣，需要定期維護，以協助您找到所需的項目，並完成任務，而不需因雜亂而爭用。請務必定期清除您為測試建立的臨時資源。否則，您可能會忘記這些資源，之後又不記得它們的用途。到那時，您可能不清楚您是否可以安全地將其排除。

**提示**  
若要避免在刪除資源時發生相依性錯誤，請務必依下列順序刪除您的資源：  
映像管道
映像配方
所有剩餘的資源

若要清除您為本教學課程建立的資源，請遵循下列步驟：

**刪除管道**

1. 若要查看在您帳戶下建立的建置管道清單，請從導覽窗格中選擇**映像管道**。

1. 選取**管道名稱**旁的核取方塊，以選取您要刪除的管道。

1. 在**映像管道**面板頂端的動作****功能表上，選擇**刪除**。

1. 若要確認刪除，`Delete`請在方塊中輸入 ，然後選擇**刪除**。

**刪除容器配方**

1. 若要查看在您帳戶下建立的容器配方清單，請從導覽窗格中選擇**容器配方**。

1. 選取**配方名稱**旁的核取方塊，以選取您要刪除的配方。

1. 在**容器配方**面板頂端的動作****功能表上，選擇**刪除配方**。

1. 若要確認刪除，`Delete`請在方塊中輸入 ，然後選擇**刪除**。

**刪除基礎設施組態**

1. 若要查看在您帳戶下建立的基礎設施組態清單，請從導覽窗格中選擇**基礎設施組態**。

1. 選取**組態名稱**旁的核取方塊，以選取您要刪除的基礎設施組態。

1. 在**基礎設施組態**面板頂端，選擇**刪除**。

1. 若要確認刪除，`Delete`請在方塊中輸入 ，然後選擇**刪除**。

**刪除分佈設定**

1. 若要查看在您帳戶下建立的分佈設定清單，請從導覽窗格中選擇**分佈設定**。

1. 選取**組態名稱**旁的核取方塊，以選取您為此教學課程建立的分佈設定。

1. 在**分佈設定**面板頂端，選擇**刪除**。

1. 若要確認刪除，`Delete`請在方塊中輸入 ，然後選擇**刪除**。

**刪除映像**  
請依照下列步驟，確認您已刪除從教學課程管道建立的任何映像。此教學課程不太可能建立映像，除非您根據建置排程建立執行的管道已經過足夠的時間。

1. 若要查看在您帳戶下建立的影像清單，請從導覽窗格中選擇**影像**。

1. 選擇您要移除之映像的映像**版本**。這會開啟**映像建置版本**頁面。

1. 針對您要刪除的任何映像，選取**版本**旁的核取方塊。您可以一次選取多個映像版本。

1. 在**映像建置版本**面板頂端，選擇**刪除版本**。

1. 若要確認刪除，`Delete`請在方塊中輸入 ，然後選擇**刪除**。