カスタムコンポーネントドキュメントで変数を使用する - EC2 Image Builder

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタムコンポーネントドキュメントで変数を使用する

変数を使用すると、アプリケーション全体で使用できるわかりやすい名前でデータにラベルを付けることができます。複雑なワークフローでは、シンプルで読み取り可能な形式でカスタム変数を定義し、 AWSTOE コンポーネントの YAML アプリケーションコンポーネントドキュメントで参照できます。

このセクションでは、構文、名前の制約、例など、YAML アプリケーション AWSTOE コンポーネントドキュメントでコンポーネントの変数を定義するのに役立つ情報を提供します。

パラメータ

パラメータは、呼び出し元のアプリケーションがランタイムに提供できる設定を含む可変変数です。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 Parameter Store を使用することをお勧めします。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=
  • AWS CLIに --parameter オプションでパラメータのキーと値のペアを 1 つ設定します。

    --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  • AWS CLIの --parameter オプションで複数のパラメータのキーと値のペアを設定します。

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

定数

定数は不変の変数で、一度定義すると変更したりオーバーライドしたりすることはできません。定数は、 AWSTOE ドキュメントの constantsセクションの値を使用して定義できます。

定数命名規則
  • 名前は 3 文字以上 128 文字以下でなければならない。

  • 名前には、英数字(a-z, A-Z, 0-9)、ダッシュ(-)、アンダースコア(_)のみを含めることができます。

  • 名前は文書内で一意でなければならない。

  • 名前は YAML 文字列として指定する必要があります。

[Syntax (構文)]

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 }}