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`