Gunakan operator perbandingan dalam dokumen AWSTOE komponen - EC2 Image Builder

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan operator perbandingan dalam dokumen AWSTOE komponen

Anda dapat menggunakan operator perbandingan berikut dengan modul Menegaskan tindakan dan dengan ekspresi bersyarat yang menggunakan. jika Membangun Operator perbandingan dapat beroperasi pada satu nilai, misalnyastringIsEmpty, atau dapat membandingkan nilai dasar dengan nilai kedua (nilai variabel) untuk menentukan apakah ekspresi kondisional mengevaluasi atau. true false

Jika perbandingan beroperasi pada dua nilai, nilai kedua dapat berupa variabel rantai.

Saat membandingkan nilai dari jenis yang berbeda, konversi nilai berikut dapat terjadi sebelum perbandingan:

  • Untuk perbandingan numerik, jika nilai variabel adalah string, AWSTOE mengkonversi string ke angka sebelum evaluasi. Jika konversi tidak memungkinkan, perbandingan kembalifalse. Misalnya, jika nilai variabelnya"1.0", konversi berfungsi, tetapi jika nilai variabelnya adalah "a10" konversi gagal.

  • Untuk perbandingan string, jika nilai variabel adalah angka, AWSTOE mengubahnya menjadi string sebelum evaluasi.

Bandingkan string

Operator perbandingan berikut bekerja dengan string untuk membandingkan nilai, untuk menguji spasi atau string kosong, atau untuk membandingkan nilai input dengan pola regex. Perbandingan string tidak peka huruf besar/kecil, dan tidak memangkas spasi dari awal atau akhir input string.

stringIsEmpty

stringIsEmptyOperator kembali true jika string tertentu tidak mengandung karakter apapun. Misalnya:

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

Tes jika string ditentukan untuk hanya stringIsWhitespace berisi spasi. Misalnya:

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

Tes jika string ditentukan untuk stringEquals adalah sama persis untuk string yang ditentukan dalam value parameter. Misalnya:

# 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

Tes jika string yang stringLessThan ditentukan untuk kurang dari string yang ditentukan dalam value parameter. Misalnya:

# 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'
stringLessThanSama dengan

Tes jika string yang stringLessThanEquals ditentukan untuk kurang dari atau sama dengan string yang ditentukan dalam value parameter. Misalnya:

# 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

Tes jika string ditentukan untuk stringGreaterThan lebih besar dari string yang ditentukan dalam value parameter. Misalnya:

# 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'
stringGreaterThanSama dengan

Tes jika string yang stringGreaterThanEquals ditentukan untuk lebih besar dari atau sama dengan string yang ditentukan dalam value parameter. Misalnya:

# 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'
Pola Pertandingan

Menguji apakah string yang ditentukan dalam value parameter cocok dengan pola regex yang ditentukan untuk. patternMatches Perbandingan menggunakan paket regexp Golang, yang sesuai dengan sintaks. RE2 Untuk informasi selengkapnya tentang RE2 aturan, lihat repositori google/re2 di. GitHub

Contoh berikut menunjukkan kecocokan pola yang mengembalikantrue:

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

Bandingkan angka

Operator perbandingan berikut bekerja dengan angka. Nilai yang diberikan untuk operator ini harus salah satu dari jenis berikut, sesuai dengan spesifikasi YAMAL. Support untuk perbandingan numerik menggunakan operator perbandingan paket besar golang, misalnya: func (*Float) Cmp.

  • Bilangan Bulat

  • Float (berdasarkan float64, yang mendukung angka dari -1.7e+308 hingga+1.7e+308)

  • String yang cocok dengan pola regex berikut: ^[-+]?([0-9]+[.])?[0-9]+$

NumberSama

Tes jika nomor yang numberEquals ditentukan untuk sama dengan angka yang ditentukan dalam value parameter. Semua contoh perbandingan berikut kembali: 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

Tes jika nomor yang numberLessThan ditentukan untuk kurang dari angka yang ditentukan dalam value parameter. Misalnya:

# Evaluates to true numberLessThan: 2 value: 1 # Evaluates to true numberLessThan: 2 value: 1.9 # Evaluates to false numberLessThan: 2 value: '2'
numberLessThanSama dengan

Tes jika angka yang numberLessThanEquals ditentukan untuk kurang dari atau sama dengan angka yang ditentukan dalam value parameter. Misalnya:

# 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

Tes jika angka yang numberGreaterThan ditentukan untuk lebih besar dari angka yang ditentukan dalam value parameter. Misalnya:

# Evaluates to true numberGreaterThan: 1 value: 2 # Evaluates to true numberGreaterThan: 1 value: 1.1 # Evaluates to false numberGreaterThan: 1 value: '1'
numberGreaterThanSama dengan

Tes jika angka yang numberGreaterThanEquals ditentukan untuk lebih besar dari atau sama dengan angka yang ditentukan dalam value parameter. Misalnya:

# 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

Periksa file

Operator perbandingan berikut memeriksa hash file atau memeriksa apakah ada file atau folder.

BinaryExists

Menguji apakah aplikasi tersedia di jalur saat ini. Misalnya:

binaryExists: 'foo'
catatan

Pada sistem Linux dan macOS, untuk aplikasi bernamafoo, ini bekerja sama dengan perintah bash berikut:type foo >/dev/null 2>&1, di mana $? == 0 menunjukkan perbandingan yang berhasil.

Pada sistem Windows, untuk aplikasi bernamafoo, ini berfungsi sama dengan PowerShell perintah di & C:\Windows\System32\where.exe /Q foo mana $LASTEXITCODE = 0 menunjukkan perbandingan yang berhasil.

FileExists

Menguji apakah file ada di jalur yang ditentukan. Anda dapat memberikan jalur absolut atau relatif. Jika lokasi yang Anda tentukan ada dan merupakan file, perbandingan akan dievaluasi. true Misalnya:

fileExists: '/path/to/file'
catatan

Pada sistem Linux dan macOS, ini bekerja sama dengan perintah bash berikut:-d /path/to/file, di mana $? == 0 menunjukkan perbandingan yang berhasil.

Pada sistem Windows, ini bekerja sama dengan PowerShell perintahTest-Path -Path 'C:\path\to\file' -PathType 'Leaf'.

FolderExists

Menguji apakah folder ada di jalur yang ditentukan. Anda dapat memberikan jalur absolut atau relatif. Jika lokasi yang Anda tentukan ada dan merupakan folder, perbandingan akan dievaluasi. true Misalnya:

folderExists: '/path/to/folder'
catatan

Pada sistem Linux dan macOS, ini bekerja sama dengan perintah bash berikut:-d /path/to/folder, di mana $? == 0 menunjukkan perbandingan yang berhasil.

Pada sistem Windows, ini bekerja sama dengan PowerShell perintahTest-Path -Path 'C:\path\to\folder' -PathType 'Container'.

Berkas MD5 Sama

Menguji apakah MD5 hash file sama dengan nilai tertentu. Misalnya:

fileMD5Equals: '<MD5Hash>' path: '/path/to/file'
Berkas SHA1 Sama

Menguji apakah SHA1 hash file sama dengan nilai tertentu. Misalnya:

fileSHA1Equals: '<SHA1Hash>' path: '/path/to/file'
Berkas SHA256 Sama

Menguji apakah SHA256 hash file sama dengan nilai tertentu. Misalnya:

fileSHA256Equals: '<SHA256Hash>' path: '/path/to/file'
Berkas SHA512 Sama

Menguji apakah SHA512 hash file sama dengan nilai tertentu. Misalnya:

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