Parsning av CycleCloud-klustermallfil
CycleCloud kan matcha parametervärden och utföra logisk utvärdering av funktioner.
Parametertyper
CycleCloud hanterar flera grundläggande typer av parametrar. I de flesta fall hanterar den dem som förväntat:
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
För att vara mer explicit kan strängvärden omges av dubbla citattecken (till exempel Attribute = "foo"
). Detta kan vara användbart om ett värde ser ut som ett tal men bör tolkas som en sträng (till exempel versionsnummer). Booleska värden kan anges till bare-tokens true
eller false
(skiftlägesokänsliga). Kommaavgränsade värden tolkas som listor och element tolkas i sin tur med samma regler som ovan.
Utvärdering av parametervärde
CycleCloud tolkar direkt parametervärden som använder eller ${}
-notationen$
.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
Funktioner som använder parametrar
CycleCloud-mallparsern kan utföra matematisk analys och utföra analys av ternary-logik enligt nedan.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
Tillgängliga funktioner:
Anteckning
Den här listan är inte omfattande, men omfattar några av de vanligaste funktionerna.
ifThenElse
Fungerar som en ternary-operator. Returnerar ett av två värden givet ett uttryck som utvärderas till sant eller falskt.
Syntax:
ifThenElse(predicate, trueValue, falseValue)
Argument:
Name | Krävs | Beskrivning |
---|---|---|
Predikat | ja | Ett uttryck som utvärderas till sant eller falskt. |
trueValue | ja | Värdet som ska användas när predicate utvärderas till sant. |
falseValue | ja | Värdet som ska användas när predicate utvärderas till falskt. |
ifUndefined
Om resultatet av utvärderingen av ett givet uttryck är odefinierat returneras ett annat värde i stället. Annars returneras bara resultatet.
Syntax:
ifUndefined(expression, value)
Argument:
Name | Krävs | Beskrivning |
---|---|---|
uttryck | ja | Uttrycket som ska utvärderas. |
värde | ja | Värdet som ska returneras när expression utvärderas till odefinierad. |
Regexp
Utför en matchning av reguljära uttryck på den angivna strängen och returnerar sant om det fanns en matchning, annars false.
Syntax:
regexp(pattern, target, [options])
Argument:
Name | Krävs | Beskrivning |
---|---|---|
Mönster | ja | Ett reguljärt uttryck i Java-format. |
Mål | ja | Indatasträngen. |
alternativ | nej | Alternativ som ska användas vid utvärdering av det reguljära uttrycket. Mer information finns i Flaggor för reguljära uttryck java.util.regex.Pattern i Java. |
regexps
Utför ersättning av reguljära uttryck på den angivna strängen och returnerar den nya strängen.
Syntax:
regexps(pattern, target, substitution, [options])
Argument:
Name | Krävs | Beskrivning |
---|---|---|
Mönster | ja | Ett reguljärt uttryck i Java-format som matchar strängen som ska ersättas. |
Mål | ja | Indatasträngen. |
Ersättning | ja | Den nya strängen som ska ersättas i stället för den del som target matchar det reguljära uttrycket. |
alternativ | nej | Alternativ som ska användas vid utvärdering av det reguljära uttrycket. Mer information finns i Flaggor för reguljära uttryck java.util.regex.Pattern i Java. |
ikoner
Returnerar längden på en viss sträng.
Syntax:
size(string)
Argument:
Name | Krävs | Description |
---|---|---|
sträng | ja | Strängen som ska kontrolleras. |
strjoin
Sammanfogar flera strängar med hjälp av en avgränsare.
Syntax:
strjoin(separator, strings)
Argument:
Name | Krävs | Beskrivning |
---|---|---|
Avgränsare | ja | En strängavgränsare som ska läggas till mellan strängar. |
strängar | ja | En lista över strängar som ska sammanfogas. Kan också anges som ett variabelt antal funktionsargument: strjoin(separator, string1, string2, string3...) |
Substr
Returnerar en del av en sträng från startindexet till slutindexet (eller slutet av strängen om inget slutindex anges).
Syntax:
substr(string, startIndex, [endIndex])
Argument:
Name | Krävs | Description |
---|---|---|
sträng | ja | Indatasträngen. |
startIndex | ja | Det startindex som ska användas. |
endIndex | nej | Ett valfritt slutindex. |
Trimma
Tar bort alla blankstegstecken från början och slutet av en sträng och returnerar resultatet.
Syntax:
trim(string)
Argument:
Name | Krävs | Description |
---|---|---|
sträng | ja | Strängen som ska trimmas. |
Tillgängliga operatorer
Operator | Definition |
---|---|
-, +, /, * | Aritmetiska |
<, <=, >=, > | comparators |
==, != | jämställdhetsutvärderingar |
&&, || | sammansatta booleska operatorer |
Variabel för specialklusternamn
En variabel som alltid anges är ${ClusterName}
. Detta utvärderas till namnet på CycleCloud-klustret.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
Relativ tid
CycleCloud tolkar back-ticks runt tidsvaraktighet som relativ tid. stöd för andra, minut och dag.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`