Analyse de fichier de modèle de cluster CycleCloud
CycleCloud est en mesure de résoudre les valeurs des paramètres et d’effectuer une évaluation logique des fonctions.
Types de paramètres
CycleCloud gère plusieurs types de paramètres de base. Dans la plupart des cas, il les gère comme prévu :
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
Pour être plus explicites, les valeurs de chaîne peuvent être entourées de guillemets doubles (par exemple, Attribute = "foo"
). Cela peut être utile dans le cas où une valeur ressemble à un nombre, mais doit être interprétée comme une chaîne (numéros de version, par exemple). Les valeurs booléennes peuvent être définies sur les jetons nus true
ou false
(sans respect de la casse). Les valeurs séparées par des virgules sont interprétées comme des listes, et les éléments sont à leur tour interprétés à l’aide des mêmes règles que ci-dessus.
Évaluation de la valeur du paramètre
CycleCloud interprète directement les valeurs de paramètre qui utilisent la $
notation ou ${}
.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
Fonctions utilisant des paramètres
L’analyseur de modèles CycleCloud est capable d’effectuer des mathématiques et d’effectuer une analyse logique ternaire, comme indiqué ci-dessous.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
Fonctions disponibles :
Notes
Cette liste n’est pas complète, mais couvre certaines des fonctions les plus couramment utilisées.
ifThenElse
Agit comme un opérateur ternaire. Retourne l’une des deux valeurs d’une expression qui prend la valeur true ou false.
Syntaxe :
ifThenElse(predicate, trueValue, falseValue)
Arguments :
Nom | Obligatoire | Description |
---|---|---|
prédicat | Oui | Expression qui prend la valeur true ou false. |
trueValue | oui | Valeur à utiliser quand predicate est évalué à true. |
falseValue | oui | Valeur à utiliser lorsque predicate prend la valeur false. |
ifUndefined
Si le résultat de l’évaluation d’une expression donnée n’est pas défini, retourne une valeur différente à la place. Sinon, retourne simplement le résultat.
Syntaxe :
ifUndefined(expression, value)
Arguments :
Nom | Obligatoire | Description |
---|---|---|
expression | Oui | Expression à évaluer. |
value | oui | Valeur à retourner lorsqu’elle expression est définie sur undefined. |
regexp
Effectue une correspondance d’expression régulière sur la chaîne donnée et retourne true s’il y a une correspondance, false dans le cas contraire.
Syntaxe :
regexp(pattern, target, [options])
Arguments :
Nom | Obligatoire | Description |
---|---|---|
modèle | oui | Expression régulière de style Java. |
target | oui | Chaîne d'entrée. |
options | non | Options à utiliser lors de l’évaluation de l’expression régulière. Pour plus d’informations, java.util.regex.Pattern consultez Indicateurs d’expression régulière de Java. |
regexps
Effectue la substitution d’expression régulière sur la chaîne donnée et retourne la nouvelle chaîne.
Syntaxe :
regexps(pattern, target, substitution, [options])
Arguments :
Nom | Obligatoire | Description |
---|---|---|
modèle | oui | Expression régulière de style Java qui correspond à la chaîne à remplacer. |
target | oui | Chaîne d'entrée. |
substitution | Oui | Nouvelle chaîne à remplacer à la place de la partie de target laquelle correspond à l’expression régulière. |
options | non | Options à utiliser lors de l’évaluation de l’expression régulière. Pour plus d’informations, java.util.regex.Pattern consultez Indicateurs d’expression régulière de Java. |
taille
Retourne la longueur d’une chaîne donnée.
Syntaxe :
size(string)
Arguments :
Nom | Obligatoire | Description |
---|---|---|
string | Oui | Chaîne à vérifier. |
strjoin
Concatène plusieurs chaînes à l’aide d’un séparateur.
Syntaxe :
strjoin(separator, strings)
Arguments :
Nom | Obligatoire | Description |
---|---|---|
separator | oui | Séparateur de chaînes à ajouter entre des chaînes. |
chaînes | oui | Liste de chaînes à concaténer. Peut également être spécifié sous la forme d’un nombre variable d’arguments de fonction : strjoin(separator, string1, string2, string3...) |
substr
Retourne une partie d’une chaîne de l’index de début à l’index de fin (ou la fin de la chaîne si aucun index de fin n’est donné).
Syntaxe :
substr(string, startIndex, [endIndex])
Arguments :
Nom | Obligatoire | Description |
---|---|---|
string | Oui | Chaîne d'entrée. |
index_début | Oui | Index de début à utiliser. |
endIndex | non | Index de fin facultatif. |
trim
Supprime tous les caractères d’espace blanc du début et de la fin d’une chaîne et retourne le résultat.
Syntaxe :
trim(string)
Arguments :
Nom | Obligatoire | Description |
---|---|---|
string | Oui | Chaîne à découper. |
Opérateurs disponibles
Opérateur | Définition |
---|---|
-, +, /, * | arithmétique |
<, <=, >=, > | Comparateurs |
==, != | évaluateurs d’égalité |
&&, || | opérateurs booléens composés |
Variable ClusterName spéciale
Une variable toujours fournie est ${ClusterName}
. Cette valeur est évaluée au nom du cluster CycleCloud.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
Temps relatif
CycleCloud interprète les cycles inverses autour de la durée comme une durée relative ; second, minute et jour.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`