Freigeben über


CycleCloud-Clustervorlagendateianalyse

CycleCloud ist in der Lage, Parameterwerte aufzulösen und eine logische Auswertung von Funktionen durchzuführen.

Parametertypen

CycleCloud verarbeitet mehrere grundlegende Parametertypen. In den meisten Fällen werden sie wie erwartet behandelt:

Attribute = foo      # string
Attribute = 1        # integer
Attribute = 1.1      # double
Attribute = false    # boolean
Attribute = foo, bar # string[]

Um expliziter zu sein, können Zeichenfolgenwerte von doppelten Anführungszeichen umgeben werden (z. B Attribute = "foo". ). Dies kann nützlich sein, wenn ein Wert wie eine Zahl aussieht, aber als Zeichenfolge interpretiert werden sollte (z. B. Versionsnummern). Boolesche Werte können auf die bloßen Token true oder false (ohne Beachtung der Groß-/Kleinschreibung) festgelegt werden. Durch Trennzeichen getrennte Werte werden als Listen interpretiert, und Elemente werden wiederum mit den gleichen Regeln wie oben interpretiert.

Parameterwertauswertung

CycleCloud interpretiert Direkt Parameterwerte, die die $ Notation oder ${} verwenden.

MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2

Funktionen mithilfe von Parametern

Der CycleCloud-Vorlagenparser ist in der Lage, mathematische und ternäre Logikanalysen durchzuführen, wie unten dargestellt.

MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}

Verfügbare Funktionen:

Hinweis

Diese Liste ist nicht umfassend, enthält jedoch einige der am häufigsten verwendeten Funktionen.

ifThenElse

Fungiert als ternärer Operator. Gibt einen von zwei Werten für einen Ausdruck zurück, der zu true oder false ausgewertet wird.

Syntax:

ifThenElse(predicate, trueValue, falseValue)

Argumente:

Name Erforderlich BESCHREIBUNG
predicate ja Ein Ausdruck, der mit "true" oder "false" ausgewertet wird.
trueValue ja Der Wert, der verwendet werden soll, wenn predicate er auf "true" ausgewertet wird.
falseValue ja Der Wert, der verwendet werden soll, wenn predicate er als false ausgewertet wird.

ifUndefined

Wenn das Ergebnis der Auswertung eines bestimmten Ausdrucks nicht definiert ist, gibt stattdessen einen anderen Wert zurück. Andernfalls wird einfach das Ergebnis zurückgegeben.

Syntax:

ifUndefined(expression, value)

Argumente:

Name Erforderlich BESCHREIBUNG
expression ja Der auszuwertende Ausdruck.
value ja Der Wert, der zurückgegeben werden soll, wenn expression er in undefined ausgewertet wird.

regexp

Führt eine Übereinstimmung mit regulären Ausdrücken für die angegebene Zeichenfolge aus und gibt true zurück, wenn eine Übereinstimmung vorhanden ist, andernfalls false.

Syntax:

regexp(pattern, target, [options])

Argumente:

Name Erforderlich BESCHREIBUNG
pattern ja Ein regulärer Ausdruck im Java-Stil.
target ja Die Eingabezeichenfolge.
Optionen nein Optionen, die beim Auswerten des regulären Ausdrucks verwendet werden sollen. Weitere Informationen finden Sie unter Reguläre Ausdrucksflags von java.util.regex.Pattern Java.

regexps

Führt reguläre Ausdrucksersetzung für die angegebene Zeichenfolge aus und gibt die neue Zeichenfolge zurück.

Syntax:

regexps(pattern, target, substitution, [options])

Argumente:

Name Erforderlich BESCHREIBUNG
pattern ja Ein regulärer Ausdruck im Java-Stil, der der zu ersetzenden Zeichenfolge entspricht.
target ja Die Eingabezeichenfolge.
substitution ja Die neue Zeichenfolge, die anstelle des Teils ersetzt werden soll, der mit target dem regulären Ausdruck übereinstimmt.
Optionen nein Optionen, die beim Auswerten des regulären Ausdrucks verwendet werden sollen. Weitere Informationen finden Sie unter Reguläre Ausdrucksflags von java.util.regex.Pattern Java.

size

Gibt die Länge einer angegebenen Zeichenfolge zurück.

Syntax:

size(string)

Argumente:

Name Erforderlich BESCHREIBUNG
Zeichenfolge ja Die zu überprüfende Zeichenfolge.

strjoin

Verkettet mehrere Zeichenfolgen mithilfe eines Trennzeichens.

Syntax:

strjoin(separator, strings)

Argumente:

Name Erforderlich BESCHREIBUNG
Trennzeichen ja Ein Zeichenfolgentrennzeichen, das zwischen Zeichenfolgen angefügt werden soll.
Zeichenfolgen ja Eine Liste der zu verkettenden Zeichenfolgen. Kann auch als variable Anzahl von Funktionsargumenten angegeben werden: strjoin(separator, string1, string2, string3...)

substr

Gibt einen Teil einer Zeichenfolge vom Startindex zum Endindex zurück (oder das Ende der Zeichenfolge, wenn kein Endindex angegeben ist).

Syntax:

substr(string, startIndex, [endIndex])

Argumente:

Name Erforderlich BESCHREIBUNG
Zeichenfolge ja Die Eingabezeichenfolge.
startIndex ja Der zu verwendende Startindex.
endIndex nein Ein optionaler Endindex.

trim

Entfernt alle Leerzeichen vom Anfang und Ende einer Zeichenfolge und gibt das Ergebnis zurück.

Syntax:

trim(string)

Argumente:

Name Erforderlich BESCHREIBUNG
Zeichenfolge ja Die zu kürzende Zeichenfolgen.

Verfügbare Operatoren

Operator Definition
-, +, /, * Arithmetisch
<, <=, >=, > Komparatoren
==, != Gleichheitsauswerter
&&, || boolesche Zusammengesetzte Operatoren

Spezielle ClusterName-Variable

Eine Variable, die immer bereitgestellt wird, ist ${ClusterName}. Dies wird mit dem Namen des CycleCloud-Clusters ausgewertet.

EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource

Relative Zeit

CycleCloud interpretiert Back-Ticks um die Zeitdauer als relative Zeit; Unterstützung für Sekunde, Minute und Tag.

ThrottleCapacityTime=`10m` 
Attribute1=`30s`
Attribute2=`7d`