En tant que développeur de modèle de cloud, vous utilisez des paramètres d'entrée pour que les utilisateurs puissent effectuer des sélections personnalisées au moment de la demande.
Fonctionnement des entrées
Lorsque les utilisateurs fournissent des entrées, vous n'avez plus besoin d'enregistrer plusieurs copies de modèle qui sont légèrement différentes. En outre, les entrées peuvent préparer un modèle pour les opérations de jour 2. Reportez-vous à la section Utilisation d'entrées de modèle de cloud pour les mises à jour de jour 2 de vRealize Automation.
Les entrées suivantes vous présentent comment créer un modèle de cloud pour un serveur de base de données MySQL, où les utilisateurs peuvent déployer ce modèle de cloud dans différents environnements de ressources de cloud et appliquer chaque fois une capacité et des informations d'identification différentes.
Ajout de paramètres d'entrée
Ajoutez une section inputs au code de votre modèle de cloud, où vous définissez les valeurs sélectionnables.
Dans l'exemple suivant, la taille de la machine, le système d'exploitation et le nombre de serveurs en cluster sont sélectionnables.
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)
Si vous ne souhaitez pas modifier le code, vous pouvez cliquer sur l'onglet Entrées de l'éditeur de code et y entrer les paramètres. L'exemple suivant présente plusieurs entrées pour la base de données MySQL mentionnée précédemment.
Référencement des paramètres d'entrée
Ensuite, dans la section resources, vous devez référencer un paramètre d'entrée à l'aide de la syntaxe ${input.property-name}.
Si un nom de propriété inclut un espace, délimitez-le avec des crochets et des guillemets au lieu d'utiliser la notation par points : ${input["nom de propriété"]}
input, sauf pour indiquer un paramètre d'entrée.
resources:
WebTier:
type: Cloud.Machine
properties:
name: wordpress
flavor: '${input.wp-size}'
image: '${input.wp-image}'
count: '${input.wp-count}'
Entrée imbriquée
Si vous souhaitez organiser ou classer les entrées, l'entrée imbriquée est prise en charge. Dans l'exemple suivant, le CPU et la mémoire se trouvent ensemble sous l'en-tête parent 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
Dans la section Ressources, pour référencer l'entrée imbriquée, incluez le parent dans le chemin d'accès.
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}
Entrée facultative ou obligatoire
Pour tous les types excepté booléen, l'entrée utilisateur est facultative par défaut. Pour exiger une entrée, effectuez l'une des actions suivantes :
- Définissez une valeur par défaut.
- Lorsque vous n'avez aucune entrée imbriquée, ajoutez la propriété
populateRequiredOnNonDefaultProperties:inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4Notez que vous pouvez également appliquer ce paramètre lors du référencement d'un groupe de propriétés formel :
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine - Avec les entrées imbriquées, ajoutez la propriété
populateRequiredForNestedProperties: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: 4096Notez que vous pouvez également appliquer ce paramètre lorsque la référence à un groupe de propriétés formel est imbriquée :
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
Entrée facultative : pour forcer la nature facultative de l'entrée, définissez une valeur par défaut vide à l'aide de coches :
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
Liste des propriétés d'entrée
| Propriété | Description |
|---|---|
| const | Utilisé avec oneOf. Valeur réelle associée au titre convivial. |
| default | Valeur préremplie pour l'entrée. Le type par défaut doit être correct. N'entrez pas de mot comme valeur par défaut d'un nombre entier. |
| description | Texte d'aide de l'utilisateur pour l'entrée. |
| encrypted | Indique s'il convient de chiffrer l'entrée fournie par l'utilisateur, true ou false. Les mots de passe sont généralement chiffrés. Vous pouvez également créer des propriétés chiffrées réutilisables dans plusieurs modèles de cloud. Reportez-vous à la section Propriétés secrètes Cloud Assembly. |
| enum | Menu déroulant des valeurs autorisées. Utilisez l'exemple suivant comme guide en matière de format.
enum:
- value 1
- value 2 |
| format | Définit le format attendu pour l'entrée. Par exemple, (25/04/19) prend en charge la date et l'heure. Permet l'utilisation du sélecteur de date dans les formulaires personnalisés Service Broker. |
| items | Déclare des éléments dans un tableau. Prend en charge un nombre, un entier, une chaîne, une valeur booléenne ou un objet. |
| maxItems | Nombre maximal d'éléments sélectionnables dans un tableau. |
| maxLength | Nombre maximal de caractères autorisés pour une chaîne. Par exemple, pour limiter un champ à 25 caractères, entrez |
| maximum | Valeur la plus élevée autorisée pour un nombre ou un entier. |
| minItems | Nombre minimal d'éléments sélectionnables dans un tableau. |
| minLength | Nombre minimal de caractères autorisés pour une chaîne. |
| minimum | Valeur la plus petite autorisée pour un nombre ou un entier. |
| oneOf | Permet au formulaire de saisie d'utilisateur d'afficher un nom convivial (title) pour une valeur moins conviviale (const). Si vous définissez une valeur par défaut, définissez la constante, et non le titre. Valide pour une utilisation avec des types chaîne, entier et nombre. |
| pattern | Caractères autorisés pour les entrées de chaîne, dans la syntaxe d'expression régulière. Par exemple, |
| properties | Déclare le bloc de propriétés key:value pour des objets. |
| readOnly | Utilisé pour fournir une étiquette de formulaire uniquement. |
| title | Utilisé avec oneOf. Nom convivial d'une valeur const. Le titre s'affiche dans le formulaire de saisie utilisateur au moment du déploiement. |
| type | Type de données de nombre, d'entier, de chaîne, de valeur booléenne ou d'objet.
Important :
Un type booléen ajoute une case à cocher vide au formulaire de demande. Laisser la boîte intacte ne rend pas l'entrée False. Pour définir l'entrée sur False, les utilisateurs doivent cocher, puis décocher la case. |
| writeOnly | Masque la frappe par des astérisques dans le formulaire. Ne peut pas être utilisé avec enum. S'affiche sous forme de champ de mot de passe dans les formulaires personnalisés Service Broker. |
Autres exemples
Chaîne avec énumération
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
Nombre entier avec valeur minimale et valeur maximale
count:
type: integer
title: Machine Count
description: The number of machines that you want to deploy.
maximum: 5
minimum: 1
default: 1
Tableau d'objets
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
Chaîne avec noms conviviaux
platform:
type: string
oneOf:
- title: AWS
const: platform:aws
- title: Azure
const: platform:azure
- title: vSphere
const: platform:vsphere
default: platform:aws
Chaîne avec validation de modèle
username:
type: string
title: Username
description: The name for the user that will be created when the machine is provisioned.
pattern: ^[a-zA-Z]+$
Chaîne sous forme de mot de passe
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
Chaîne sous forme de zone de texte
ssh_public_key:
type: string
title: SSH public key
maxLength: 256
Valeur booléenne
public_ip:
type: boolean
title: Assign public IP address
description: Choose whether your machine should be internet facing.
default: false
Sélecteur de calendrier Date et heure
leaseDate:
type: string
title: Lease Date
format: date-time