Als cloudsjabloonontwikkelaar gebruikt u invoerparameters zodat gebruikers aangepaste keuzes kunnen maken op het moment van de aanvraag.

Hoe invoer werkt

Wanneer gebruikers invoer opgeven, hoeft u niet langer meerdere kopieën van sjablonen op te slaan die slechts een beetje verschillen. Daarnaast kunt u met invoer een sjabloon voorbereiden voor bewerkingen voor dag 2. Zie Cloudsjablooninvoer voor vRealize Automation-updates voor dag 2 gebruiken.

De volgende invoer toont hoe u één cloudsjabloon voor een MySQL-databaseserver maakt, waarbij gebruikers die ene sjabloon in verschillende cloudresourceomgevingen kunnen implementeren en elke keer een andere capaciteit en andere verificatiegegevens toepassen.

Invoervariabelen

Invoerparameters toevoegen

Voeg het gedeelte inputs toe aan uw sjablooncode, waar u de gewenste waarden instelt.

In het volgende voorbeeld kunnen de machinegrootte, het besturingssysteem en het aantal geclusterde servers worden geselecteerd.

inputs:
  wp-size:
    type: string
    enum:
      - small
      - medium
    description: Size of Nodes
    title: Node Size
  wp-image:
    type: string
    enum:
      - coreos
      - ubuntu
    title: Select Image/OS
  wp-count:
    type: integer
    default: 2
    maximum: 5
    minimum: 2
    title: Wordpress Cluster Size
    description: Wordpress Cluster Size (Number of nodes)

Als u niet voldoende vertrouwd bent om uw code te bewerken, klikt u op het tabblad Invoer van de code-editor en voert u daar instellingen in. Het volgende voorbeeld toont invoer voor de MySQL-database die eerder is vermeld.

Tabblad Invoer

Verwijzen naar invoerparameters

Vervolgens verwijst u in de sectie resources naar een invoerparameter met de syntaxis ${input.property-name}.

Als de naam van een eigenschap een spatie bevat, moet u deze markeren met vierkante haakjes en dubbele aanhalingstekens in plaats van de puntnotatie te gebruiken: ${input["property name"]}

Belangrijk: In de cloudsjablooncode kunt u het woord input niet gebruiken om een invoerparameter aan te duiden.
resources:
  WebTier:
    type: Cloud.Machine
    properties:
      name: wordpress
      flavor: '${input.wp-size}'
      image: '${input.wp-image}'
      count: '${input.wp-count}'

Geneste invoer

Als u invoer wilt ordenen of categoriseren, wordt geneste invoer ondersteund. In het volgende voorbeeld staan de CPU en het geheugen samen onder een bovenliggende kop niveau.

Opmerking: Een groep geneste invoer is anders dan het maken van en verwijzen naar een formele eigenschapsgroep.
inputs:
  cluster:
    type: integer
    title: Cluster
    default: 1
    minimum: 1
    maximum: 4
  level:
    type: object
    properties:
      cpu:
        type: integer
        title: CPU
        default: 1
        minimum: 1
        maximum: 4
      memory:
        type: integer
        title: Memory
        default: 2048
        minimum: 2048
        maximum: 4096

Neem in de sectie resources de bovenliggende kop in het pad op als u wilt verwijzen naar de geneste invoer.

resources:
  Disk_1:
    type: Cloud.vSphere.Disk
    allocatePerInstance: true
    properties:
      capacityGb: 1
      count: ${input.cluster}
  Machine_1:
    type: Cloud.vSphere.Machine
    allocatePerInstance: true
    properties:
      totalMemoryMB: ${input.level.memory}
      attachedDisks:
        - source: ${slice(resource.Disk_1[*].id, count.index, count.index + 1)[0]}
      count: ${input.cluster}
      imageRef: ubuntu
      cpuCount: ${input.level.cpu}

Optionele versus vereiste invoer

Voor alle typen behalve Boole is de gebruikersvermelding standaard optioneel. Voer een van de volgende handelingen uit om invoer te vereisen:

  • Stel een standaardwaarde in.
  • Als u geen geneste invoer heeft, voegt u de eigenschap populateRequiredOnNonDefaultProperties toe:
    inputs:
      cluster:
        type: integer
        populateRequiredOnNonDefaultProperties: true
        title: Cluster
        minimum: 1
        maximum: 4

    Houd er rekening mee dat u deze instelling ook kunt toepassen wanneer u verwijst naar een formele eigenschapsgroep:

    inputs:
      pgmachine:
        type: object
        populateRequiredOnNonDefaultProperties: true
        $ref: /ref/property-groups/machine
  • Voeg met geneste invoer de eigenschap populateRequiredForNestedProperties toe:
    inputs:
      cluster:
        type: integer
        title: Cluster
        default: 1
        minimum: 1
        maximum: 4
      level:
        type: object
        properties:
          cpu:
            type: integer
            populateRequiredForNestedProperties: true
            title: CPU
            minimum: 1
            maximum: 4
          memory:
            type: integer
            populateRequiredForNestedProperties: true
            title: Memory
            minimum: 2048
            maximum: 4096

    Houd er rekening mee dat u deze instelling ook kunt toepassen wanneer een verwijzing naar formele eigenschapsgroep is genest:

      level:
        type: object
        properties:
          cpu:
            type: integer
            populateRequiredForNestedProperties: true
            title: CPU
            minimum: 1
            maximum: 4
          memory:
            type: integer
            populateRequiredForNestedProperties: true
            title: Memory
            minimum: 2048
            maximum: 4096
          pgrequester:
            type: object
            populateRequiredForNestedProperties: true
            $ref: /ref/property-groups/requesterDetails

Optionele invoer – Om te forceren dat invoer optioneel blijft, stelt u een lege standaardwaarde in met vinkjes:

owner:
  type: string
  minLength: 0
  maxLength: 30
  title: Owner Name
  description: Account Owner
  default: ''
Optionele invoer

Invoer verzenden naar vRealize Orchestrator

Voer de volgende stappen uit om cloudsjablooninvoer aan een vRealize Orchestrator-actie te leveren. Met vRealize Orchestrator-acties is het invoerformulier eenvoudiger te gebruiken dan de cloudsjablooncode rechtstreeks te typen.

  1. Controleer in de instantie van vRealize Orchestrator die is geïntegreerd met vRealize Automation of de gewenste actie bestaat.
  2. Ga op de ontwerppagina voor cloudsjablonen in Cloud Assembly naar het tabblad Invoer en klik op om een nieuwe invoer toe te voegen.
  3. Selecteer een type en selecteer Externe bron.
  4. Klik naast Actie op de knop Selecteren.
  5. Gebruik het zoekveld Actie om de vRealize Orchestrator-actie te vinden en te selecteren.
  6. Voer actieparameters in of selecteer deze.

Nadat u de invoer heeft opgeslagen en gemaakt, wordt deze in de cloudsjablooncode weergegeven als $dynamicDefault-invoer. Bijvoorbeeld:

inputs:
  backupnetwork:
    type: string
    $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}

Lijst met invoereigenschappen

Eigenschap Beschrijving
const Wordt gebruikt met oneOf. De werkelijke waarde die aan de beschrijvende titel is gekoppeld.
default Vooraf ingevulde waarde voor de invoer.

De standaardwaarde moet van het juiste type zijn. Voer niet een woord in als standaardwaarde voor een geheel getal.

description Helptekst voor de gebruiker voor de invoer.
encrypted

Of de invoer van de gebruiker moet worden versleuteld, waar of onwaar.

Wachtwoorden worden doorgaans versleuteld.

U kunt ook versleutelde eigenschappen maken die herbruikbaar zijn in meerdere cloudsjablonen. Zie Geheime Cloud Assembly-eigenschappen.

enum Een vervolgkeuzelijst met toegestane waarden.

Gebruik het volgende voorbeeld als richtlijn voor de opmaak.

enum:
      - value 1
      - value 2
format Stelt de verwachte notatie voor de invoer in. Bijvoorbeeld: (25/04/19) ondersteunt datum/tijd.

Staat het gebruik van de datumkiezer in aangepaste formulieren van Service Broker toe.

items Geeft items in een array aan. Ondersteunt getal, geheel getal, tekenreeks, Booleaans of object.
maxItems Maximum aantal selecteerbare items in een array.
maxLength Maximum aantal tekens dat is toegestaan voor een tekenreeks.

Als u bijvoorbeeld een veld wilt beperken tot 25 tekens, voert u maxLength: 25 in.

maximum De grootste toegestane waarde voor een getal of geheel getal.
minItems Minimum aantal items dat in een array kan worden geselecteerd.
minLength Minimum aantal tekens dat voor een tekenreeks is toegestaan.
minimum De kleinste toegestane waarde voor een getal of geheel getal.
oneOf Staat toe dat het formulier voor gebruikersinvoer een beschrijvende naam (titel) voor een minder gebruiksvriendelijke waarde (const) weergeeft. Als u een standaardwaarde instelt, stelt u const in, niet de titel.

Geldig voor gebruik met de typen tekenreeks, geheel getal en getal.

pattern Toegestane tekens voor invoer van een tekenreeks, in de syntaxis van reguliere expressies.

Bijvoorbeeld: '[a-z]+' of '[a-z0-9A-Z@#$]+'.

properties Geeft het eigenschappenblok key:value aan voor objecten.
readOnly Wordt gebruikt om alleen een formulierlabel op te geven.
title Wordt gebruikt met oneOf. De beschrijvende naam voor een const-waarde. De titel wordt tijdens het implementeren weergegeven op het formulier voor gebruikersinvoer.
type Het gegevenstype getal, geheel getal, tekenreeks, Booleaans of object.
Belangrijk:

Het type Booleaans voegt een leeg selectievakje toe aan het aanvraagformulier. Als u het vak niet bewerkt, wordt de invoer niet False.

Om de invoer in te stellen op False, moeten gebruikers het vakje inschakelen en vervolgens uitschakelen.

writeOnly Verbergt toetsaanslagen in het formulier achter sterretjes. Kan niet met enum worden gebruikt. Wordt als wachtwoordveld weergegeven in aangepaste formulieren van Service Broker.

Aanvullende voorbeelden

Tekenreeks met inventarisatie

  image:
    type: string
    title: Operating System
    description: The operating system version to use.
    enum:
      - ubuntu 16.04
      - ubuntu 18.04
    default: ubuntu 16.04

  shell:
    type: string
    title: Default shell
    Description: The default shell that will be configured for the created user.
    enum:
      - /bin/bash
      - /bin/sh

Geheel getal met minimum en maximum

  count:
    type: integer
    title: Machine Count
    description: The number of machines that you want to deploy.
    maximum: 5
    minimum: 1
    default: 1

Array van objecten

  tags:
    type: array
    title: Tags
    description: Tags that you want applied to the machines.
    items:
      type: object
      properties:
        key:
          type: string
          title: Key
        value:
          type: string
          title: Value

Tekenreeks met beschrijvende namen

  platform:
    type: string
    oneOf:
      - title: AWS
        const: platform:aws
      - title: Azure
        const: platform:azure
      - title: vSphere
        const: platform:vsphere
    default: platform:aws

Tekenreeks met patroonvalidatie

  username:
    type: string
    title: Username
    description: The name for the user that will be created when the machine is provisioned.
    pattern: ^[a-zA-Z]+$

Tekenreeks als wachtwoord

  password:
    type: string
    title: Password
    description: The initial password that will be required to logon to the machine. Configured to reset on first login.
    encrypted: true
    writeOnly: true

Tekenreeks als tekstgebied

  ssh_public_key:
    type: string
    title: SSH public key
    maxLength: 256

Booleaans

  public_ip:
    type: boolean
    title: Assign public IP address
    description: Choose whether your machine should be internet facing.
    default: false

Agendakiezer voor datum en tijd

  leaseDate:
    type: string
    title: Lease Date
    format: date-time