Als Cloud-Vorlagendesigner verwenden Sie Eingabeparameter, damit Benutzer zur Anforderungszeit benutzerdefinierte Auswahlen vornehmen können.

Funktionsweise von Eingaben

Wenn Benutzer Eingaben bereitstellen, müssen nicht mehr mehrere Vorlagenkopien gespeichert werden, die sich nur geringfügig unterscheiden. Darüber hinaus können Eingaben eine Vorlage auf Tag-2-Vorgänge vorbereiten. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden von Cloud-Vorlageneingaben für Tag-2-Updates in vRealize Automation.

Die folgenden Eingaben zeigen, wie Sie eine Cloud-Vorlage für einen MySQL-Datenbankserver erstellen, wobei Benutzer diese eine Cloud-Vorlage in verschiedenen Cloud-Ressourcenumgebungen bereitstellen und jedes Mal andere Funktionen und Anmeldedaten anwenden können.

Eingabevariablen

Hinzufügen von Eingabeparametern

Fügen Sie dem Vorlagencode einen inputs-Abschnitt hinzu, in dem Sie die auswählbaren Werte festlegen.

Im folgenden Beispiel können Maschinengröße, Betriebssystem und Anzahl der geclusterten Server ausgewählt werden.

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)

Wenn Sie mit der Bearbeitung von Code nicht vertraut sind, können Sie auf die Registerkarte Eingaben des Code-Editors klicken und dort entsprechende Einstellungen vornehmen. Das folgende Beispiel zeigt bestimmte Eingaben für die bereits erwähnte MySQL-Datenbank.

Registerkarte „Eingaben“

Verweisen auf Eingabeparameter

Als Nächstes verweisen Sie im Abschnitt resources unter Verwendung der Syntax ${input.property-name} auf einen Eingabeparameter.

Wenn ein Eigenschaftsname ein Leerzeichen enthält, trennen Sie ihn mit eckigen Klammern und doppelten Anführungszeichen ab, anstatt die Punktnotation zu verwenden: ${input["property name"]}

Wichtig: Im Cloud-Vorlagencode können Sie das Wort input nur verwenden, um einen Eingabeparameter anzugeben.
resources:
  WebTier:
    type: Cloud.Machine
    properties:
      name: wordpress
      flavor: '${input.wp-size}'
      image: '${input.wp-image}'
      count: '${input.wp-count}'

Verschachtelte Eingabe

Wenn Sie Eingaben organisieren oder kategorisieren möchten, wird verschachtelte Eingaben unterstützt. Im folgenden Beispiel sind die CPU und der Arbeitsspeicher unter einer übergeordneten Überschrift der Ebene zusammengefasst.

Hinweis: Eine Gruppe verschachtelter Eingaben unterscheidet sich vom Erstellen und Verweisen auf eine formale Eigenschaftsgruppe.
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

Fügen Sie im Abschnitt Ressourcen das übergeordnete Element in den Pfad ein, um auf die verschachtelte Eingabe zu verweisen.

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}

Optionale und erforderliche Eingabe

Für alle Typen außer Boolesch ist der Benutzereintrag standardmäßig optional. Gehen Sie zum Anfordern der Eingabe folgendermaßen vor:

  • Legen Sie einen Standardwert fest.
  • Wenn Sie keine verschachtelten Eingaben haben, fügen Sie die Eigenschaft populateRequiredOnNonDefaultProperties hinzu:
    inputs:
      cluster:
        type: integer
        populateRequiredOnNonDefaultProperties: true
        title: Cluster
        minimum: 1
        maximum: 4

    Beachten Sie, dass Sie diese Einstellung auch anwenden können, wenn Sie auf eine formale Eigenschaftsgruppe verweisen:

    inputs:
      pgmachine:
        type: object
        populateRequiredOnNonDefaultProperties: true
        $ref: /ref/property-groups/machine
  • Fügen Sie bei verschachtelten Eingaben die Eigenschaft populateRequiredForNestedProperties hinzu:
    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

    Beachten Sie, dass Sie diese Einstellung auch anwenden können, wenn der Verweis einer formalen Eigenschaftsgruppe verschachtelt ist:

      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

Optionale Eingabe – Legen Sie zum Durchsetzen der optionalen Eingabe mithilfe von Häkchen einen leeren Standardwert fest:

owner:
  type: string
  minLength: 0
  maxLength: 30
  title: Owner Name
  description: Account Owner
  default: ''
Optionale Eingabe

Senden von Eingaben an vRealize Orchestrator

Führen Sie die folgenden Schritte aus, um eine Cloud-Vorlageneingabe für eine vRealize Orchestrator-Aktion bereitzustellen. Bei vRealize Orchestrator-Aktionen gestaltet sich die Eingabe mittels eines Formulars einfacher als die direkte Eingabe in den Cloud-Vorlagencode.

  1. Stellen Sie in der vRealize Orchestrator-Instanz, die in vRealize Automation integriert ist, sicher, dass die gewünschte Aktion vorhanden ist.
  2. Navigieren Sie auf der Designseite für Cloud-Vorlagen in Cloud Assembly zur Registerkarte Eingaben und klicken Sie darauf, um eine neue Eingabe hinzuzufügen.
  3. Wählen Sie einen Typ und anschließend Externe Quelle aus.
  4. Klicken Sie neben „Aktion“ auf die Schaltfläche Auswählen.
  5. Verwenden Sie das Suchfeld „Aktion“, um nach der vRealize Orchestrator-Aktion zu suchen und sie auszuwählen.
  6. Geben Sie Aktionsparameter ein oder wählen Sie sie aus.

Nachdem Sie die Eingabe gespeichert und erstellt haben, wird sie im Cloud-Vorlagencode als $dynamicDefault-Eingabe angezeigt. Beispiel:

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

Liste der Eingabeeigenschaften

Eigenschaft Beschreibung
const Wird mit oneOf verwendet. Der dem angezeigten Titel zugeordnete tatsächliche Wert.
default Vorab befüllter Wert für die Eingabe.

Der Standardwert muss den korrekten Typ aufweisen. Geben Sie kein Wort als Standardwert für eine Ganzzahl ein.

description Benutzerhilfetext für die Eingabe.
encrypted

Gibt an, ob die vom Benutzer eingegebene Eingabe verschlüsselt werden soll, True oder False.

Kennwörter werden in der Regel verschlüsselt.

Sie können auch verschlüsselte Eigenschaften erstellen, die über mehrere Cloud-Vorlagen hinweg wiederverwendbar sind. Weitere Informationen hierzu finden Sie unter Geheime Cloud Assembly-Eigenschaften.

enum Ein Dropdown-Menü mit den zulässigen Werten.

Verwenden Sie das folgende Beispiel als Formatierungshilfe.

enum:
      - value 1
      - value 2
format Legt das erwartete Format für die Eingabe fest. Beispiel: (25/04/19) unterstützt Datum/Uhrzeit (data-time).

Ermöglicht die Verwendung der Datumsauswahl in benutzerdefinierten Service Broker-Formularen.

items Deklariert Elemente innerhalb eines Arrays. Unterstützt „Zahl“, „Ganzzahl“, „Zeichenfolge“, „Boolesch“ oder „Objekt“.
maxItems Maximale Anzahl der auswählbaren Elemente innerhalb eines Arrays.
maxLength Größte zulässige Anzahl an Zeichen für eine Zeichenfolge.

Wenn Sie ein Feld beispielsweise auf 25 Zeichen begrenzen möchten, geben Sie maxLength: 25 ein.

maximum Größter zulässiger Wert für eine Zahl oder Ganzzahl.
minItems Mindestanzahl der auswählbaren Elemente innerhalb eines Arrays.
minLength Kleinste zulässige Anzahl an Zeichen für eine Zeichenfolge.
minimum Kleinster zulässiger Wert für eine Zahl oder Ganzzahl.
oneOf Ermöglicht, dass das Benutzereingabeformular einen Anzeigenamen (title) für einen weniger benutzerfreundlichen Wert (const) anzeigt. Wenn Sie einen Standardwert festlegen, legen Sie „const“ fest, nicht „title“.

Gültig für die Verwendung mit den Typen „Zeichenfolge“, „Ganzzahl“ und „Zahl“.

pattern Zulässige Zeichen für Zeichenfolgeneingaben in der Syntax für reguläre Ausdrücke.

Beispiel: '[a-z]+' oder '[a-z0-9A-Z@#$]+'

Eigenschaften Deklariert den key:value-Eigenschaftenblock für Objekte.
readOnly Dient nur zur Bereitstellung einer Formularbezeichnung.
title Wird mit oneOf verwendet. Der Anzeigename für einen const-Wert. Der Titel wird zum Zeitpunkt der Bereitstellung im Benutzereingabeformular angezeigt.
type Datentyp „Zahl“, „Ganzzahl“, „Zeichenfolge“, „Boolesch“ oder „Objekt“.
Wichtig:

Ein boolescher Typ fügt dem Anforderungsformular ein leeres Kontrollkästchen hinzu. Wenn Sie das Kästchen leer lassen, wird die Eingabe nicht auf „False“ gesetzt.

Zum Festlegen der Eingabe auf „False“ müssen Benutzer das Kontrollkästchen aktivieren und deaktivieren.

writeOnly Blendet im Formular die Tastenanschläge hinter Sternchen aus. Kann nicht mit „enum“ verwendet werden. Wird in benutzerdefinierten Service Broker-Formularen als Kennwertfeld angezeigt.

Weitere Beispiele

Zeichenfolge mit Enumeration

  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

Ganzzahl mit Mindest- und Höchstwert

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

Array von Objekten

  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

Zeichenfolge mit Anzeigenamen

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

Zeichenfolge mit Mustervalidierung

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

Zeichenfolge als Kennwort

  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

Zeichenfolge als Textbereich

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

Boolesch

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

Kalenderauswahl für Datum und Uhrzeit

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