Share via


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`