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

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

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

您可以直接從 Image Builder 主控台、或從映像產生器或管理 EC2 Image Builder 元件 AWS CLI,包括建立和設定元API件參數SDKs。在本節中,我們將介紹在組件中創建和使用參數,以及在運行時通過 Image Builder 控制台和 AWS CLI 命令設置組件參數。

重要

元件參數是純文字值,並已登入 AWS CloudTrail。我們建議您使用 AWS Secrets Manager 或 AWS Systems Manager 參數存放區來儲存您的秘密。如需有關 Secrets Manager 的詳細資訊,請參閱什麼是 Secrets Manager?《AWS 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驗證器的工具或代碼環境中的 YAML lint 擴展來驗證您的格式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驗證器的工具或代碼環境中的 YAML lint 擴展來驗證您的格式YAML正確。

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

從元件文件建立YAML元件

無論您使用什麼方法來創建 AWS TOE 組件,YAML應用程序組件文檔始終需要作為基準。

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

  • 若要使用「影像建置器」指令從指create-component令行建立元件,請參閱從建立自訂元件 AWS CLI。將這些範例中的YAML文件名稱取代為 Hello World YAML 文件 (hello-world-test.yaml) 的名稱。

從主控台設定 Image Builder 方案中的元件參數

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

選取零組件後,它會顯示在所選零組件區段中,直接位於元件清單下方。每個選取的元件都會顯示組態選項。如果您的元件已定義輸入參數,它們將顯示為稱為「輸入參數」的可展開區段。

針對您的元件定義的每個參數,會顯示下列參數設定:

  • 參數名稱 (不可編輯) — 參數的名稱。

  • 說明 (不可編輯) — 參數說明

  • 類型 (不可編輯) — 參數值的資料類型。

  • — 參數的值。如果您是第一次在此方案中使用此元件,且已為輸入參數定義了預設值,則預設值會顯示在「值」(Val ue) 方塊中,並顯示灰色文字。如果未輸入其他值,「Image Builder」會使用預設值。