Condividi tramite


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 Espressione che restituisce true o false.
trueValue Valore da utilizzare quando predicate restituisce true.
falseValue 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 Espressione da valutare.
Valore 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 Espressione regolare in stile Java.
target 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 Espressione regolare in stile Java che corrisponde alla stringa da sostituire.
target Stringa di input.
substitution 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 Stringa da verificare.

strjoin

Concatena più stringhe usando un separatore.

Sintassi:

strjoin(separator, strings)

Argomenti:

Nome Obbligatorio Descrizione
separator Separatore di stringa da aggiungere tra stringhe.
stringhe 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 Stringa di input.
startIndex 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 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`