教學課程:使用輸入參數建立自訂元件 - EC2 映像建置器

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

教學課程:使用輸入參數建立自訂元件

您可以從 Image Builder 主控台、 或 Image EC2 Builder AWS CLI或 管理 Image Builder API 元件,包括建立和設定元件參數SDKs。在本節中,我們將介紹在元件中建立和使用參數,以及在執行階段透過 Image Builder 主控台和 AWS CLI 命令設定元件參數。

重要

元件參數是純文字值,並登入 AWS CloudTrail。建議您使用 AWS Secrets Manager 或 AWS Systems Manager 參數存放區來存放秘密。如需 Secrets Manager 的詳細資訊,請參閱 AWS Secrets Manager 使用者指南 中的什麼是 Secrets Manager?。如需 AWS Systems Manager 參數存放區的詳細資訊,請參閱 AWS Systems Manager 使用者指南 中的AWS Systems Manager 參數存放區

使用YAML元件文件中的參數

若要建置元件,您必須提供 YAML或JSON應用程式元件文件。文件包含在您定義為映像提供自訂的階段和步驟期間執行的程式碼。參考元件的配方可以設定參數,以在執行階段自訂值,預設值會在參數未設定為特定值時生效。

使用輸入參數建立元件文件

本節說明如何在YAML元件文件中定義和使用輸入參數。

若要建立使用參數並在 Image Builder 建置或測試執行個體中執行命令YAML的應用程式元件文件,請依照符合映像作業系統的步驟進行:

Linux
建立YAML元件文件

使用檔案編輯工具建立元件文件檔案。文件範例使用名為 的檔案hello-world-test.yaml,其中包含下列內容:

# Document Start # name: "HelloWorldTestingDocument-Linux" description: "Hello world document to demonstrate parameters." schemaVersion: 1.0 parameters: - MyInputParameter: type: string default: "It's me!" description: This is an input parameter. phases: - name: build steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo "Hello World! Build phase. My input parameter value is {{ MyInputParameter }}" - name: validate steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo "Hello World! Validate phase. My input parameter value is {{ MyInputParameter }}" - name: test steps: - name: HelloWorldStep action: ExecuteBash inputs: commands: - echo "Hello World! Test phase. My input parameter value is {{ MyInputParameter }}" # Document End
提示

使用此線上YAML驗證器 之類的工具,或程式碼環境中的 lint YAML 延伸模組,來驗證您的 YAML是否格式良好。

Windows
建立YAML元件文件

使用檔案編輯工具建立元件文件檔案。文件範例使用名為 的檔案hello-world-test.yaml,其中包含下列內容:

# Document Start # name: "HelloWorldTestingDocument-Windows" description: "Hello world document to demonstrate parameters." schemaVersion: 1.0 parameters: - MyInputParameter: type: string default: "It's me!" description: This is an input parameter. phases: - name: build steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host "Hello World! Build phase. My input parameter value is {{ MyInputParameter }}" - name: validate steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host "Hello World! Validate phase. My input parameter value is {{ MyInputParameter }}" - name: test steps: - name: HelloWorldStep action: ExecutePowerShell inputs: commands: - Write-Host "Hello World! Test phase. My input parameter value is {{ MyInputParameter }}" # Document End
提示

使用此線上YAML驗證器 之類的工具,或程式碼環境中的 lint YAML 延伸模組,來驗證您的 YAML是否格式良好。

如需應用程式元件文件的階段、步驟和語法 AWS TOE 的詳細資訊,請參閱 中的使用文件 AWS TOE。如需參數及其需求的詳細資訊,請參閱 第 頁中的定義和參考變數 AWS TOE參數一節。

從元件文件建立YAML元件

無論您使用什麼方法建立 AWS TOE 元件,一律需要YAML應用程式元件文件作為基準。

  • 若要使用 Image Builder 主控台直接從YAML文件建立元件,請參閱 從主控台建立自訂元件

  • 若要使用 Image Builder create-component命令從命令列建立元件,請參閱 從 建立自訂元件 AWS CLI。將這些範例中YAML的文件名稱取代為您的 Hello World YAML 文件名稱 (hello-world-test.yaml)。

從主控台在 Image Builder 配方中設定元件參數

設定元件參數對映像配方和容器配方的運作方式相同。當您建立新的配方或新版本的配方時,您可以從建置元件測試元件清單中選擇要包含的元件。元件清單包含適用於您為映像選擇之基礎作業系統的元件。

選取元件之後,該元件會顯示在元件清單下的所選元件區段中。系統會顯示所選取每個元件的組態選項。如果您的元件已定義輸入參數,則會顯示為稱為輸入參數 的可擴展區段。

為元件定義的每個參數會顯示下列參數設定:

  • 參數名稱 (無法編輯 ) – 參數的名稱。

  • 描述 (無法編輯) – 參數描述

  • 類型 (無法編輯 ) – 參數值的資料類型。

  • – 參數的值。如果您第一次在此配方中使用此元件,且已為輸入參數定義預設值,則預設值會顯示在方塊中,並顯示反灰文字。如果未輸入其他值,Image Builder 會使用預設值。