Delen via


CycleCloud-clustersjabloonbestand parseren

CycleCloud kan parameterwaarden oplossen en logische evaluatie van functies uitvoeren.

Parametertypen

CycleCloud verwerkt verschillende basistypen parameters. In de meeste gevallen worden deze verwerkt zoals verwacht:

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

Om explicieter te zijn, kunnen tekenreekswaarden worden omgeven door dubbele aanhalingstekens (bijvoorbeeld Attribute = "foo"). Dit kan handig zijn in het geval dat een waarde lijkt op een getal, maar moet worden geïnterpreteerd als een tekenreeks (bijvoorbeeld versienummers). Booleaanse waarden kunnen worden ingesteld op de lege tokens true of false (niet hoofdlettergevoelig). Door komma's gescheiden waarden worden geïnterpreteerd als lijsten en elementen worden op hun beurt geïnterpreteerd met dezelfde regels als hierboven.

Evaluatie van parameterwaarde

CycleCloud interpreteert rechtstreeks parameterwaarden die gebruikmaken van de $ notatie of ${} .

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

Functies met behulp van parameters

De CycleCloud-sjabloonparser kan wiskundige en ternaire logicaanalyses uitvoeren, zoals hieronder wordt weergegeven.

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

Beschikbare functies:

Notitie

Deze lijst is niet volledig, maar bevat een aantal van de meest gebruikte functies.

ifThenElse

Fungeert als een ternaire operator. Retourneert een van twee waarden op basis van een expressie die waar of onwaar oplevert.

Syntaxis:

ifThenElse(predicate, trueValue, falseValue)

Argumenten:

Name Vereist Beschrijving
Predikaat ja Een expressie die waar of onwaar oplevert.
trueValue ja De waarde die moet worden gebruikt wanneer predicate wordt geëvalueerd als waar.
falseValue ja De waarde die moet worden gebruikt wanneer predicate wordt geëvalueerd als onwaar.

ifUndefined

Als het resultaat van het evalueren van een bepaalde expressie niet gedefinieerd is, retourneert in plaats daarvan een andere waarde. Anders retourneert u gewoon het resultaat.

Syntaxis:

ifUndefined(expression, value)

Argumenten:

Name Vereist Beschrijving
expressie ja De expressie die moet worden geëvalueerd.
waarde ja De waarde die moet worden geretourneerd wanneer expression wordt geëvalueerd als niet-gedefinieerd.

Regexp

Voert een reguliere expressieovereenkomst uit op de opgegeven tekenreeks en retourneert true als er een overeenkomst is, anders onwaar.

Syntaxis:

regexp(pattern, target, [options])

Argumenten:

Name Vereist Beschrijving
Patroon ja Een reguliere expressie in Java-stijl.
Doel ja De invoertekenreeks.
opties nee Opties die moeten worden gebruikt bij het evalueren van de reguliere expressie. Zie Java's regular expression flags on (Reguliere expressievlagmen van Java op) java.util.regex.Pattern voor meer informatie.

regexps

Voert reguliere expressievervanging uit op de opgegeven tekenreeks en retourneert de nieuwe tekenreeks.

Syntaxis:

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

Argumenten:

Name Vereist Beschrijving
Patroon ja Een reguliere expressie in Java-stijl die overeenkomt met de tekenreeks die moet worden vervangen.
Doel ja De invoertekenreeks.
Vervanging ja De nieuwe tekenreeks die moet worden vervangen in plaats van target het deel waarvan overeenkomt met de reguliere expressie.
opties nee Opties die moeten worden gebruikt bij het evalueren van de reguliere expressie. Zie Java's regular expression flags on (Reguliere expressievlagmen van Java op) java.util.regex.Pattern voor meer informatie.

grootte

Retourneert de lengte van een bepaalde tekenreeks.

Syntaxis:

size(string)

Argumenten:

Name Vereist Description
tekenreeks ja De tekenreeks die moet worden gecontroleerd.

strjoin

Voegt meerdere tekenreeksen samen met behulp van een scheidingsteken.

Syntaxis:

strjoin(separator, strings)

Argumenten:

Name Vereist Beschrijving
scheidingsteken ja Een tekenreeksscheidingsteken om toe te voegen tussen tekenreeksen.
tekenreeksen ja Een lijst met tekenreeksen die moeten worden samengevoegd. Kan ook worden opgegeven als een variabel aantal functieargumenten: strjoin(separator, string1, string2, string3...)

Substr

Retourneert een deel van een tekenreeks van de beginindex naar de eindindex (of het einde van de tekenreeks als er geen eindindex is opgegeven).

Syntaxis:

substr(string, startIndex, [endIndex])

Argumenten:

Name Vereist Description
tekenreeks ja De invoertekenreeks.
startIndex ja De beginindex die moet worden gebruikt.
Endindex nee Een optionele eindindex.

Trim

Verwijdert alle witruimtetekens aan het begin en einde van een tekenreeks en retourneert het resultaat.

Syntaxis:

trim(string)

Argumenten:

Name Vereist Description
tekenreeks ja De tekenreeks die moet worden geknipt.

Beschikbare operators

Operator Definitie
-, +, /, * Rekenkundige
<, <=, >=, =, > comparators
==, != gelijkheid evaluators
&&, || samengestelde Booleaanse operatoren

Speciale clusternaamvariabele

Een variabele die altijd wordt opgegeven, is ${ClusterName}. Dit wordt geëvalueerd op basis van de naam van het CycleCloud-cluster.

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

Relatieve tijd

CycleCloud interpreteert back-ticks rond tijdsduur als relatieve tijd; ondersteunend seconde, minuut en dag.

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