で条件付きコンストラクトを使用する AWSTOE - EC2 Image Builder

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

で条件付きコンストラクトを使用する AWSTOE

条件付きコンストラクトは、指定された条件式が true または のどちらに評価されるかに基づいて、コンポーネントドキュメントで異なるアクションを実行しますfalseif コンストラクトを使用して、コンポーネントドキュメントの実行フローを制御できます。

構築する場合

if コンストラクトを使用して、ステップを実行するかどうかを評価できます。デフォルトでは、if条件式が に評価されるとtrue、 はステップ AWSTOE を実行し、条件が に評価されるとfalse、 はステップを AWSTOE スキップします。ステップがスキップされた場合、 はフェーズとドキュメントが正常に実行されたかどうかを評価すると AWSTOE 、成功したステップとして扱われます。

注記

if ステートメントは、ステップが再起動をトリガーした場合でも、1 回のみ評価されます。ステップが再起動すると、ifステートメントが既に評価されていることを認識し、中断した箇所で続行します。

構文

if: - <conditional expression>: [then: <step action>] [else: <step action>]
キー名 必要 説明
条件式 可能

条件式には、最上位レベルで次のタイプの演算子のいずれかのみを含めることができます。

  • 比較演算子 – 比較演算子のリスト、およびそれらが AWSTOE コンポーネントドキュメントでどのように機能するかについては、「」を参照してください比較演算子

  • 論理演算子 – 論理演算子には、andor、および が含まれnot、1 つ以上の比較演算子で動作します。コンポーネントドキュメントでの AWSTOE 論理演算子の仕組みの詳細については、「」を参照してください論理演算子

式が複数の条件を満たす必要がある場合は、論理演算子を使用して条件を指定します。

次に 不可

条件式が に評価された場合に実行するアクションを定義しますtrue

else 不可

条件式が に評価された場合に実行するアクションを定義しますfalse

ステップアクション 条件付き

then または を使用する場合はelse、次のいずれかのステップアクションを指定する必要があります。

  • 中止 – AWSTOE ステップを失敗としてマークします。

  • 実行 – AWSTOE ステップを実行します。

  • スキップ – AWSTOE ステップをスキップします。

例 1: パッケージをインストールする

AWSTOE コンポーネントドキュメントの以下のステップ例では、論理演算子を使用してパラメータ値をテストし、パッケージが解凍されている場合は、適切なパッケージマネージャーコマンドを実行してアプリケーションをインストールします。

- name: InstallUnzipAptGet action: ExecuteBash if: and: - binaryExists: 'apt-get' - not: binaryExists: 'unzip' inputs: commands: - sudo apt-get update - sudo apt-get install -y unzip - name: InstallUnzipYum action: ExecuteBash if: and: - binaryExists: 'yum' - not: binaryExists: 'unzip' inputs: commands: - sudo yum install -y unzip - name: InstallUnzipZypper action: ExecuteBash if: and: - binaryExists: 'zypper' - not: binaryExists: 'unzip' inputs: commands: - sudo zypper refresh - sudo zypper install -y unzip
例 2: ステップをスキップする

次の例は、ステップをスキップする 2 つの方法を示しています。1 つは論理演算子を使用し、1 つはSkipステップアクションで比較演算子を使用します。

# Creates a file if it does not exist using not - name: CreateMyConfigFile-1 action: ExecuteBash if: not: fileExists: '/etc/my_config' inputs: commands: - echo "Hello world" > '/etc/my_config' # Creates a file if it does not exist using then and else - name: CreateMyConfigFile-2 action: ExecuteBash if: fileExists: '/etc/my_config' then: Skip else: Execute inputs: commands: - echo "Hello world" > '/etc/my_config'