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.
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.
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"]}
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.
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: ''
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 |
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: |
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