Analisi dei file modello di cluster CycleCloud
CycleCloud è in grado di risolvere i valori dei parametri ed eseguire la valutazione logica delle funzioni.
Tipi di parametro
CycleCloud gestisce diversi tipi di parametri di base. Nella maggior parte dei casi, li gestirà come previsto:
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
Per essere più espliciti, i valori stringa possono essere racchiusi tra virgolette doppie , ad esempio Attribute = "foo"
. Ciò può essere utile nel caso in cui un valore abbia un aspetto simile a un numero, ma deve essere interpretato come stringa (numeri di versione, ad esempio). I valori booleani possono essere impostati sui token true
bare o false
(senza distinzione tra maiuscole e minuscole). I valori delimitati da virgole vengono interpretati come elenchi e gli elementi vengono interpretati a loro volta usando le stesse regole indicate in precedenza.
Valutazione del valore del parametro
CycleCloud interpreta direttamente i valori dei parametri che usano la $
notazione o ${}
.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
Funzioni che usano parametri
Il parser del modello CycleCloud è in grado di eseguire operazioni matematiche ed eseguire l'analisi logica ternaria, come illustrato di seguito.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
Funzioni disponibili:
Nota
Questo elenco non è completo, ma illustra alcune delle funzioni più usate.
ifThenElse
Funge da operatore ternario. Restituisce uno dei due valori assegnati a un'espressione che restituisce true o false.
Sintassi:
ifThenElse(predicate, trueValue, falseValue)
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
predicate | Sì | Espressione che restituisce true o false. |
trueValue | Sì | Valore da utilizzare quando predicate restituisce true. |
falseValue | Sì | Valore da utilizzare quando predicate restituisce false. |
ifUndefined
Se il risultato della valutazione di una determinata espressione non è definito, restituisce invece un valore diverso. In caso contrario, restituisce semplicemente il risultato.
Sintassi:
ifUndefined(expression, value)
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
expression | Sì | Espressione da valutare. |
Valore | Sì | Valore da restituire quando expression restituisce un valore non definito. |
Regexp
Esegue una corrispondenza di espressione regolare sulla stringa specificata e restituisce true se esiste una corrispondenza, false in caso contrario.
Sintassi:
regexp(pattern, target, [options])
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
pattern | Sì | Espressione regolare in stile Java. |
target | Sì | Stringa di input. |
opzioni | no | Opzioni da utilizzare per la valutazione dell'espressione regolare. Per altri dettagli, java.util.regex.Pattern vedere Flag di espressione regolare di Java. |
regexps
Esegue la sostituzione delle espressioni regolari sulla stringa specificata e restituisce la nuova stringa.
Sintassi:
regexps(pattern, target, substitution, [options])
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
pattern | Sì | Espressione regolare in stile Java che corrisponde alla stringa da sostituire. |
target | Sì | Stringa di input. |
substitution | Sì | Nuova stringa da sostituire al posto della parte di target cui corrisponde l'espressione regolare. |
opzioni | no | Opzioni da utilizzare per la valutazione dell'espressione regolare. Per altri dettagli, java.util.regex.Pattern vedere Flag di espressione regolare di Java. |
size
Restituisce la lunghezza di una determinata stringa.
Sintassi:
size(string)
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
string | sì | Stringa da verificare. |
strjoin
Concatena più stringhe usando un separatore.
Sintassi:
strjoin(separator, strings)
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
separator | Sì | Separatore di stringa da aggiungere tra stringhe. |
stringhe | Sì | Elenco di stringhe da concatenare. Può anche essere specificato come numero variabile di argomenti di funzione: strjoin(separator, string1, string2, string3...) |
substr
Restituisce parte di una stringa dall'indice iniziale all'indice finale (o la fine della stringa se non viene specificato alcun indice finale).
Sintassi:
substr(string, startIndex, [endIndex])
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
string | sì | Stringa di input. |
startIndex | Sì | Indice iniziale da usare. |
endIndex | no | Indice finale facoltativo. |
Trim
Rimuove tutti i caratteri di spazi vuoti dall'inizio e dalla fine di una stringa e restituisce il risultato.
Sintassi:
trim(string)
Argomenti:
Nome | Obbligatorio | Descrizione |
---|---|---|
string | sì | La stringa da eliminare. |
Operatori disponibili
Operatore | Definizione |
---|---|
-, +, /, * | aritmetico |
<, <=, =, >> | Comparatori |
==, != | analizzatori di uguaglianza |
&&, || | operatori booleani composti |
Variabile ClusterName speciale
Una variabile sempre fornita è ${ClusterName}
. Viene valutato il nome del cluster CycleCloud.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
Tempo relativo
CycleCloud interpreta i tick back-tick durante la durata del tempo come tempo relativo; supporto secondo, minuto e giorno.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`