AWSTOE コンポーネントドキュメントでの比較演算子の使用 - EC2 Image Builder

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

AWSTOE コンポーネントドキュメントでの比較演算子の使用

Assert アクションモジュールや if 構造 を使用する条件式では、以下の比較演算子を使用できます。比較演算子には、stringIsEmpty など、単一の値に対して動作するものもあれば、ベースライン値を 2 番目の値 (変数値) と比較して、条件式が truefalse のどちらに評価されるかを判定するものもあります。

比較が 2 つの値で動作する場合、2 番目の値は連鎖変数にすることができます。

異なるタイプの値を比較すると、次の値変換が比較前に発生する可能性があります。

  • 数値比較の場合、変数値が文字列の場合、 は文字列を評価前の数値 AWSTOE に変換します。変換が不可能な場合、比較は false を返します。例えば、変数値が "1.0" の場合は変換が機能しますが、変数値が "a10" の場合は変換に失敗します。

  • 文字列比較の場合、変数値が数値の場合、 は評価の前に文字列 AWSTOE に変換します。

文字列の比較

以下の比較演算子は文字列を対象として、値の比較、スペースや空の文字列かどうかのテスト、入力値と正規表現パターンの比較を行います。文字列比較では、大文字と小文字は区別されず、入力文字列の先頭または末尾のスペースはトリミングされません。

stringIsEmpty

stringIsEmpty 演算子は、指定された文字列に文字が含まれていない場合に true を返します。以下に例を示します。

# Evaluates to true stringIsEmpty: "" # Evaluates to false stringIsEmpty: " " # Evaluates to false stringIsEmpty: "Hello."
stringIsWhitespace

stringIsWhitespace に指定された文字列にスペースのみが含まれているかどうかをテストします。以下に例を示します。

# Evaluates to true stringIsWhitespace: " " # Evaluates to false stringIsWhitespace: "" # Evaluates to false stringIsWhitespace: " Hello?"
stringEquals

stringEquals に指定された文字列が、value パラメータに指定された文字列と完全に一致するかどうかをテストします。以下に例を示します。

# Evaluates to true stringEquals: 'Testing, testing...' value: 'Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Hello again.' # Evaluates to false stringEquals: 'Testing, testing...' value: 'TESTING, TESTING....' # Evaluates to false stringEquals: 'Testing, testing...' value: ' Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Testing, testing... '
stringLessThan

stringLessThan に指定された文字列が、value パラメータに指定された文字列より小さいかどうかをテストします。以下に例を示します。

# Evaluates to true # This comparison operator isn't case sensitive stringlessThan: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringlessThan: 'b' value: 'a' # Evaluates to true # Numeric strings compare as less than alphabetic strings stringlessThan: 'a' value: '0' # Evaluates to false stringlessThan: '0' value: 'a'
stringLessThan等しい

stringLessThanEquals に指定された文字列が、value パラメータに指定された文字列以下であるかどうかをテストします。以下に例を示します。

# Evaluates to true - 'a' is equal to 'a' stringLessThanEquals: 'a' value: 'a' # Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A' stringLessThanEquals: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringLessThanEquals: 'b' value: 'a' # Evaluates to true - '0' is less than 'a' stringLessThanEquals: 'a' value: '0' # Evaluates to false - 'a' is greater than '0' stringLessThanEquals: '0' value: 'a'
stringGreaterThan

stringGreaterThan に指定された文字列が、value パラメータに指定された文字列より大きいかどうかをテストします。以下に例を示します。

# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a' stringGreaterThan: 'a' value: 'A' # Evaluates to true - 'b' is greater than 'a' stringGreaterThan: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThan: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThan: 'a' value: '0'
stringGreaterThan等しい

stringGreaterThanEquals に指定された文字列が、value パラメータに指定された文字列以上であるかどうかをテストします。以下に例を示します。

# Evaluates to true - 'a' is equal to 'A' stringGreaterThanEquals: 'A' value: 'a' # Evaluates to true - 'b' is greater than 'a' stringGreaterThanEquals: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThanEquals: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThanEquals: 'a' value: '0'
patternMatches

value パラメータで指定された文字列が、patternMatches で指定された正規表現パターンと一致するかどうかをテストします。比較では、 RE2構文に準拠する Golang regexp パッケージを使用します。RE2 ルールの詳細については、「」の「google / re2 リポジトリ」を参照してくださいGitHub

次の例は、true を返すパターン一致を示しています。

patternMatches: '^[a-z]+$' value: 'ThisIsValue'

数値の比較

以下の比較演算子は数値を対象として動作します。これらの演算子に提供される値は、YAML仕様に従って、次のいずれかのタイプである必要があります。数値比較のサポートでは、golang の big パッケージの比較演算子 (func (*Float) Cmp など) が使用されます。

  • 整数

  • 浮動小数点数 (float64 に基づき、-1.7e+308~+1.7e+308 の数値をサポート)

  • 正規表現パターン ^[-+]?([0-9]+[.])?[0-9]+$ に一致する文字列。

numberEquals

numberEquals に指定された数値が、value パラメータに指定された数値と等しいかどうかをテストします。次の比較の例はすべて true を返します。

# Values provided as a positive number numberEquals: 1 value: 1 # Comparison value provided as a string numberEquals: '1' value: 1 # Value provided as a string numberEquals: 1 value: '1' # Values provided as floats numberEquals: 5.0 value: 5.0 # Values provided as a negative number numberEquals: -1 value: -1
numberLessThan

numberLessThan に指定された数値が、value パラメータに指定された数値より小さいかどうかをテストします。以下に例を示します。

# Evaluates to true numberLessThan: 2 value: 1 # Evaluates to true numberLessThan: 2 value: 1.9 # Evaluates to false numberLessThan: 2 value: '2'
numberLessThan等しい

numberLessThanEquals に指定された数値が、value パラメータに指定された数値以下であるかどうかをテストします。以下に例を示します。

# Evaluates to true numberLessThanEquals: 2 value: 1 # Evaluates to true numberLessThanEquals: 2 value: 1.9 # Evaluates to true numberLessThanEquals: 2 value: '2' # Evaluates to false numberLessThanEquals: 2 value: 2.1
numberGreaterThan

numberGreaterThan に指定された数値が、value パラメータに指定された数値より大きいかどうかをテストします。以下に例を示します。

# Evaluates to true numberGreaterThan: 1 value: 2 # Evaluates to true numberGreaterThan: 1 value: 1.1 # Evaluates to false numberGreaterThan: 1 value: '1'
numberGreaterThan等しい

numberGreaterThanEquals に指定された数値が、value パラメータに指定された数値以上であるかどうかをテストします。以下に例を示します。

# Evaluates to true numberGreaterThanEquals: 1 value: 2 # Evaluates to true numberGreaterThanEquals: 1 value: 1.1 # Evaluates to true numberGreaterThanEquals: 1 value: '1' # Evaluates to false numberGreaterThanEquals: 1 value: 0.8

ファイルのチェック

以下の比較演算子は、ファイルハッシュのチェックや、ファイルまたはフォルダが存在するかどうかの確認を行います。

binaryExists

現在のパスでアプリケーションが利用可能かどうかをテストします。以下に例を示します。

binaryExists: 'foo'
注記

Linux および macOS システムでは、 という名前のアプリケーションの場合foo、これは次の bash コマンドと同じように機能します: type foo >/dev/null 2>&1。 は比較が成功した$? == 0ことを示します。

Windows システムでは、 という名前のアプリケーションの場合foo、これは PowerShell コマンドと同じように機能します。 & C:\Windows\System32\where.exe /Q foo は比較が成功した$LASTEXITCODE = 0ことを示します。

fileExists

指定されたパスにファイルが存在するかどうかをテストします。絶対パスまたは相対パスを指定できます。指定された場所が存在し、ファイルである場合、比較は true に評価されます。以下に例を示します。

fileExists: '/path/to/file'
注記

Linux および macOS システムでは、これは bash コマンド -d /path/to/file と同じ動作になり、$? == 0 が比較の成功を示します。

Windows システムでは、これは PowerShell コマンド と同じように機能しますTest-Path -Path 'C:\path\to\file' -PathType 'Leaf'

folderExists

指定されたパスにフォルダが存在するかどうかをテストします。絶対パスまたは相対パスを指定できます。指定された場所が存在し、フォルダである場合、比較は true に評価されます。以下に例を示します。

folderExists: '/path/to/folder'
注記

Linux および macOS システムでは、これは bash コマンド -d /path/to/folder と同じ動作になり、$? == 0 が比較の成功を示します。

Windows システムでは、これは PowerShell コマンド と同じように機能しますTest-Path -Path 'C:\path\to\folder' -PathType 'Container'

fileMD5Equals

ファイルのMD5ハッシュが指定された値と等しいかどうかをテストします。以下に例を示します。

fileMD5Equals: '<MD5Hash>' path: '/path/to/file'
fileSHA1Equals

ファイルのSHA1ハッシュが指定された値と等しいかどうかをテストします。以下に例を示します。

fileSHA1Equals: '<SHA1Hash>' path: '/path/to/file'
fileSHA256Equals

ファイルのSHA256ハッシュが指定された値と等しいかどうかをテストします。以下に例を示します。

fileSHA256Equals: '<SHA256Hash>' path: '/path/to/file'
fileSHA512Equals

ファイルのSHA512ハッシュが指定された値と等しいかどうかをテストします。以下に例を示します。

fileSHA512Equals: '<SHA512Hash>' path: '/path/to/file'