Share via


Análise de arquivos de modelo de cluster do CycleCloud

O CycleCloud é capaz de resolve valores de parâmetro e executar a avaliação lógica das funções.

Tipos de parâmetro

O CycleCloud lida com vários tipos básicos de parâmetros. Na maioria dos casos, ele lidará com eles conforme o esperado:

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

Para serem mais explícitos, os valores de cadeia de caracteres podem ser cercados por aspas duplas (por exemplo, Attribute = "foo"). Isso pode ser útil no caso em que um valor se parece com um número, mas deve ser interpretado como uma cadeia de caracteres (números de versão, por exemplo). Os valores boolianos podem ser definidos como tokens nus ou false (não diferencia maiúsculas true de minúsculas). Os valores separados por vírgulas são interpretados como listas e os elementos, por sua vez, são interpretados usando as mesmas regras acima.

Avaliação do valor do parâmetro

O CycleCloud interpreta diretamente os valores de parâmetro que usam a $ notação ou ${} .

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

Funções usando parâmetros

O analisador de modelos do CycleCloud é capaz de executar a matemática e fazer uma análise lógica ternária, conforme visto abaixo.

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

Funções disponíveis:

Observação

Essa lista não é abrangente, mas abrange algumas das funções mais usadas.

ifThenElse

Atua como um operador ternário. Retorna um dos dois valores dado uma expressão que é avaliada como true ou false.

Sintaxe:

ifThenElse(predicate, trueValue, falseValue)

Argumentos:

Nome Obrigatório Descrição
predicate sim Uma expressão que é avaliada como true ou false.
trueValue sim O valor a ser usado quando predicate avaliado como true.
falseValue sim O valor a ser usado quando predicate avaliado como false.

ifUndefined

Se o resultado da avaliação de uma determinada expressão for indefinido, retornará um valor diferente. Caso contrário, simplesmente retorna o resultado.

Sintaxe:

ifUndefined(expression, value)

Argumentos:

Nome Obrigatório Descrição
expressão sim A expressão a ser avaliada.
value sim O valor a ser retornado quando expression avaliado como indefinido.

regexp

Executa uma correspondência de expressão regular na cadeia de caracteres fornecida e retorna true se houver uma correspondência, caso contrário, false.

Sintaxe:

regexp(pattern, target, [options])

Argumentos:

Nome Obrigatório Descrição
pattern sim Uma expressão regular no estilo Java.
destino sim A cadeia de caracteres de entrada.
opções não Opções a serem usadas ao avaliar a expressão regular. Confira Sinalizadores de expressão regular do Java ativados java.util.regex.Pattern para obter mais detalhes.

regexps

Executa a substituição de expressão regular na cadeia de caracteres fornecida e retorna a nova cadeia de caracteres.

Sintaxe:

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

Argumentos:

Nome Obrigatório Descrição
pattern sim Uma expressão regular no estilo Java que corresponde à cadeia de caracteres a ser substituída.
destino sim A cadeia de caracteres de entrada.
substitution sim A nova cadeia de caracteres a ser substituída no lugar da parte da target qual corresponde à expressão regular.
opções não Opções a serem usadas ao avaliar a expressão regular. Confira Sinalizadores de expressão regular do Java ativados java.util.regex.Pattern para obter mais detalhes.

tamanho

Retorna o comprimento de uma determinada cadeia de caracteres.

Sintaxe:

size(string)

Argumentos:

Nome Obrigatório Descrição
string sim A cadeia de caracteres a ser verificada.

strjoin

Concatena várias cadeias de caracteres usando um separador.

Sintaxe:

strjoin(separator, strings)

Argumentos:

Nome Obrigatório Descrição
separator sim Um separador de cadeia de caracteres a ser acrescentado entre cadeias de caracteres.
cadeias de caracteres sim Uma lista de cadeias de caracteres a serem concatenas. Também pode ser especificado como um número variável de argumentos de função: strjoin(separator, string1, string2, string3...)

substr

Retorna parte de uma cadeia de caracteres do índice inicial para o índice final (ou o final da cadeia de caracteres se nenhum índice final for fornecido).

Sintaxe:

substr(string, startIndex, [endIndex])

Argumentos:

Nome Obrigatório Descrição
string sim A cadeia de caracteres de entrada.
startIndex sim O índice inicial a ser usado.
endIndex não Um índice final opcional.

cortar

Remove todos os caracteres de espaço em branco do início e do final de uma cadeia de caracteres e retorna o resultado.

Sintaxe:

trim(string)

Argumentos:

Nome Obrigatório Descrição
string sim Cadeia de caracteres para cortar.

Operadores disponíveis

Operador Definição
-, +, /, * aritmética
<, <=, >=, > Comparadores
==, != avaliadores de igualdade
&&, || operadores boolianos compostos

Variável ClusterName Especial

Uma variável sempre fornecida é ${ClusterName}. Isso é avaliado como o nome do cluster CycleCloud.

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

Tempo relativo

O CycleCloud interpreta os tiques inativos em torno da duração do tempo como tempo relativo; dando suporte a segundo, minuto e dia.

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