在自訂元件文件中使用變數 - EC2 Image Builder

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

在自訂元件文件中使用變數

變數提供一種方法,以有意義的名稱標記資料,可用於整個應用程式。您可以為複雜工作流程定義具有簡單且可讀取格式的自訂變數,並在 AWS TOE 元件的 YAML 應用程式元件文件中參考它們。

本節提供的資訊可協助您在 YAML 應用程式 AWS TOE 元件文件中定義元件的變數,包括語法、名稱限制條件和範例。

參數

參數是可變變數,具有呼叫應用程式可在執行時間提供的設定。您可以在 YAML 文件的 Parameters區段中定義參數。

參數名稱的規則
  • 名稱長度必須介於 3 到 128 個字元之間。

  • 名稱只能包含英數字元 (a-z、A-Z、0-9)、破折號 (-) 或底線 (_)。

  • 名稱在文件中必須是唯一的。

  • 名稱必須指定為 YAML 字串。

語法

parameters: - <name>: type: <parameter type> default: <parameter value> description: <parameter description>

金鑰名稱

必要

描述

name

參數名稱。文件必須是唯一的 (不得與任何其他參數名稱或常數相同)。

type

參數的資料類型。支援的類型包括:string

default

參數的預設值。

description

描述 參數。

文件中的參考參數值

您可以在 YAML 文件內的步驟或迴圈輸入中參考參數,如下所示:

  • 參數參考區分大小寫,且名稱必須完全相符。

  • 名稱必須括在雙大括號 {{ MyParameter}}

  • 大括號內允許空格,並會自動修剪。例如,下列所有參考都是有效的:

    {{ MyParameter }}, {{ MyParameter}}, {{MyParameter }}, {{MyParameter}}

  • YAML 文件中的參考必須指定為字串 (以單引號或雙引號括住)。

    例如: - {{ MyParameter }} 無效,因為它未被識別為字串。

    不過,下列參考都是有效的: - '{{ MyParameter }}'- "{{ MyParameter }}"

範例

下列範例示範如何在 YAML 文件中使用參數:

  • 請參閱步驟輸入中的 參數:

    name: Download AWS CLI version 2 schemaVersion: 1.0 parameters: - Source: type: string default: 'https://awscli.amazonaws.com/AWSCLIV2.msi' description: The AWS CLI installer source URL. phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  • 請參閱迴圈輸入中的 參數:

    name: PingHosts schemaVersion: 1.0 parameters: - Hosts: type: string default: 127.0.0.1,amazon.com description: A comma separated list of hosts to ping. phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}

在執行時間覆寫參數

您可以從 AWS CLI 搭配鍵值對使用 --parameters選項,在執行時間設定參數值。

  • 指定參數鍵/值對做為名稱和值,並以等號 (<name>=<value>) 分隔。

  • 多個參數必須以逗號分隔。

  • 在 YAML 元件文件中找不到的參數名稱會被忽略。

  • 參數名稱和值都是必要的。

重要

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

語法

--parameters name1=value1,name2=value2...

CLI 選項

必要

描述

--parameters name=value,...

此選項會取得索引鍵值對的清單,並將 參數名稱做為索引鍵。

範例

下列範例示範如何在 YAML 文件中使用參數:

  • --parameter 此選項中指定的參數鍵/值對無效:

    --parameters ntp-server=
  • 使用 中的 --parameter選項設定一個參數鍵/值對 AWS CLI:

    --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  • 使用 中的 --parameter選項設定多個參數鍵值對 AWS CLI:

    --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com

常數

常數是不可變的變數,一旦定義後便無法修改或覆寫。您可以使用 AWS TOE 文件 constants區段中的值來定義常數。

常數名稱的規則
  • 名稱長度必須介於 3 到 128 個字元之間。

  • 名稱只能包含英數字元 (a-z、A-Z、0-9)、破折號 (-) 或底線 (_)。

  • 名稱在文件中必須是唯一的。

  • 名稱必須指定為 YAML 字串。

語法

constants: - <name>: type: <constant type> value: <constant value>
金鑰名稱 必要 描述

name

常數的名稱。文件必須是唯一的 (不得與任何其他參數名稱或常數相同)。

value

常數的值。

type

常數的類型。支援的類型為 string
參考文件中的常數值

您可以在 YAML 文件內的步驟或迴圈輸入中參考常數,如下所示:

  • 常數參考區分大小寫,且名稱必須完全相符。

  • 名稱必須括在雙大括號 {{ MyConstant}}

  • 大括號內允許空格,並會自動修剪。例如,下列所有參考都是有效的:

    {{ MyConstant }}, {{ MyConstant}}, {{MyConstant }}, {{MyConstant}}

  • YAML 文件中的參考必須指定為字串 (以單引號或雙引號括住)。

    例如: - {{ MyConstant }} 無效,因為它未被識別為字串。

    不過,下列參考都是有效的: - '{{ MyConstant }}'- "{{ MyConstant }}"

範例

步驟輸入中參考的常數

name: Download AWS CLI version 2 schemaVersion: 1.0 constants: - Source: type: string value: https://awscli.amazonaws.com/AWSCLIV2.msi phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'

迴圈輸入中參考的常數

name: PingHosts schemaVersion: 1.0 constants: - Hosts: type: string value: 127.0.0.1,amazon.com phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}