De expressiesyntaxis geeft alle beschikbare mogelijkheden van expressies in vRealize Automation Cloud Assembly-sjablonen weer.

De syntaxis wordt slechts gedeeltelijk weergegeven in de voorbeelden die u ziet in Expressies gebruiken om cloudsjablooncode veelzijdiger te maken in vRealize Automation Cloud Assembly.

Literals

De volgende literals worden ondersteund:

  • Booleaans (waar of onwaar)
  • Geheel getal
  • Drijvende komma
  • Tekenreeks

    Backslash wordt gebruikt om dubbele aanhalingstekens, enkele aanhalingstekens en een backslash zelf aan te geven:

    " wordt met escapeteken aangegeven als \"

    ' wordt met escapeteken aangegeven als \'

    \ wordt met escapeteken aangegeven als \\

    De aanhalingstekens hoeven alleen met een escapeteken te worden aangegeven in een tekenreeks die is ingesloten tussen aanhalingstekens van hetzelfde type, zoals hieronder wordt weergegeven.

    "I am a \"double quoted\" string inside \"double quotes\"."

  • Null

Omgevingsvariabelen

Omgevingsnamen:

  • orgId
  • projectId
  • projectName
  • deploymentId
  • deploymentName
  • blueprintId
  • blueprintVersion
  • blueprintName
  • requestedBy (gebruiker)
  • requestedAt (tijd)

Syntaxis:

env.ENV_NAME

Voorbeeld:

${env.blueprintId}

Resourcevariabelen

Met resourcevariabelen kunt u vanuit andere resources binden aan resource-eigenschappen.

Syntaxis:

resource.RESOURCE_NAME.PROPERTY_NAME

Voorbeelden:

  • ${resource.db.id}
  • ${resource.db.networks[0].address}
  • ${resource.app.id} (De tekenreeks voor niet-geclusterde resources retourneren, waarbij aantal niet is opgegeven. De array voor geclusterde resources retourneren.)
  • ${resource.app[0].id} (De eerste invoer voor geclusterde resources retourneren.)

Self-variabelen voor resource

Self-variabelen voor resources zijn alleen toegestaan voor resources die de toewijzingsfase ondersteunen. Self-variabelen voor resources zijn alleen beschikbaar (of hebben alleen een ingestelde waarde) nadat de toewijzingsfase is voltooid.

Syntaxis:

self.property_name

Voorbeeld:

${self.address} (Retourneren het adres dat is toegewezen tijdens de toewijzingsfase.)

Voor een resource met de naam resource_x zijn self.property_name en resource.resource_x.property_name hetzelfde en beide worden beschouwd als zelfverwijzingen.

Clustertellerindex

Syntaxis:

count.index

Voorbeeld:

${count.index == 0 ? "primary" : "secondary"} (Retourneren het knooppunttype voor geclusterde resources.)

Beperkingen:

Het gebruik van count.index voor resourcetoewijzing wordt niet ondersteund. De volgende capaciteitsexpressie mislukt bijvoorbeeld wanneer deze verwijst naar de positie binnen een array met schijven die tijdens de invoer zijn gemaakt.

inputs:
  disks:
    type: array
    minItems: 0
    maxItems: 12
    items:
      type: object
      properties:
        size:
          type: integer
          title: Size (GB)
          minSize: 1
          maxSize: 2048
resources:
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: '${input.disks[count.index].size}'
      count: '${length(input.disks)}'

Voorwaarden

Syntaxis:

  • Gelijkheidsoperators zijn == en !=.
  • Relationele operators zijn < > <= en >=.
  • Logische operators zijn && || en !.
  • Conditionals gebruiken het patroon:

    voorwaarde-expressie ? waar-expressie : onwaar-expressie

Voorbeelden:

${input.count < 5 && input.size == 'small'}

${input.count < 2 ? "small" : "large"}

Rekenkundige operators

Syntaxis:

Operators zijn + / * en %.

Voorbeeld:

${(input.count + 5) * 2}

Samenvoeging van tekenreeks

Syntaxis:

${'ABC' + 'DEF'} resulteert in ABCDEF.

Operators [] en .

De expressie volgt het ECMAScript om de verwerking van de operators [] en . gelijk te schakelen.

Dus is expr.identifier gelijk aan expr["identifier"]. De id wordt gebruikt om een literal te maken waarvan de waarde de id is en vervolgens wordt de operator [] met die waarde gebruikt.

Voorbeeld:

${resource.app.networks[0].address}

Als een eigenschap een spatie bevat, moet u deze bovendien markeren met vierkante haakjes en dubbele aanhalingstekens in plaats van de puntnotatie te gebruiken.

Onjuist:

input.operating system

Juist:

input["operating system"]

Constructie van kaart

Syntaxis:

${{'key1':'value1', 'key2':input.key2}}

Constructie van array

Syntaxis:

${['key1','key2']}

Voorbeeld:

${[1,2,3]}

Functies

Syntaxis:

${functie(argumenten...)}

Voorbeeld:

${to_lower(resource.app.name)}

Tabel 1. Functies
Functie Beschrijving
abs(getal) Absolute getalwaarde
floor(getal) Retourneert de grootste waarde (die positieve oneindigheid het dichtst benadert) die kleiner is dan of gelijk is aan het argument en gelijk is aan een wiskundig geheel getal
ceil(getal) Retourneert de kleinste waarde (die negatieve oneindigheid het dichtst benadert) die groter is dan of gelijk is aan het argument en gelijk is aan een wiskundig geheel getal
to_lower(tekenreeks) Tekenreeks converteren naar kleine letters
to_upper(tekenreeks) Tekenreeks converteren naar hoofdletters
contains(array, waarde) Controleren of de array een waarde bevat
contains(tekenreeks, waarde) Controleren of de tekenreeks een waarde bevat
join(array, scheidingsteken) Array van tekenreeksen met een scheidingsteken samenvoegen en een tekenreeks retourneren
split(tekenreeks, scheidingsteken) Tekenreeks met scheidingsteken splitsen en array met tekenreeksen retourneren
slice(array, begin, einde) Segment van array retourneren van beginindex tot eindindex
reverse(array) Vermeldingen in array omkeren
starts_with(onderwerp, voorvoegsel) Controleren of de onderwerptekenreeks begint met de voorvoegseltekenreeks
ends_with(onderwerp, achtervoegsel) Controleren of de onderwerptekenreeks eindigt op de achtervoegseltekenreeks
replace(tekenreeks, doel, vervanging) Tekenreeks door doeltekenreeks vervangen
substring(tekenreeks, begin, einde) Subtekenreeks van tekenreeks vanaf de beginindex tot de eindindex retourneren
format(notatie, waarden...) Een opgemaakte tekenreeks met behulp van Java Class Formatter-notatie en -waarden retourneren.
keys(toewijzing) Sleutels van toewijzing retourneren
values(toewijzing) Waarden van toewijzing retourneren
merge(toewijzing, toewijzing) Een samengevoegde toewijzing retourneren
length(tekenreeks) Lengte van tekenreeks retourneren
length(array) Lengte van array retourneren
max(array) Maximumwaarde van array met getallen retourneren
min(array) Minimumwaarde uit array met getallen retourneren
sum(array) De som van alle waarden van de array met getallen retourneren
avg(array) Het gemiddelde van alle waarden van een array met getallen retourneren
digest(waarde, type) Samenvatting van waarde met ondersteund type (md5, sha1, sha256, sha384, sha512) retourneren
to_string(waarde) Tekenreeksweergave van de waarde retourneren
to_number(tekenreeks) Tekenreeks als getal parseren
not_null(array) De eerste vermelding retourneren die niet leeg is
base64_encode(tekenreeks) Base64-gecodeerde waarde retourneren
base64_decode(tekenreeks) Gedecodeerde Base64-waarde retourneren
now() Huidige tijd in ISO-8601-indeling retourneren
uuid() Willekeurig gegenereerde UUID retourneren
from_json(tekenreeks) JSON-tekenreeks parseren
to_json(waarde) Waarde als JSON-tekenreeks serialiseren
json_path(waarde, pad) Het pad ten opzichte van de waarde evalueren met behulp van XPath voor JSON.
matches(tekenreeks, regex) Controleren of de tekenreeks overeenkomt met een regex-expressie
url_encode(tekenreeks) Tekenreeks coderen met behulp van URL-coderingsspecificatie
trim(tekenreeks) Voorloop- en volgspaties verwijderen