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: 4
Notez 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: 4096
Notez 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