Utilisation d’expressions dans Mise en service et gouvernance du cloud
Les expressions dans les actions de politique peuvent définir ou remplacer des valeurs. Les expressions dans les plans peuvent accéder aux attributs des ressources et peuvent mapper les valeurs aux champs de formulaire de demande. Les expressions sont disponibles dans des blocs de ressources, des plans, des stratégies et partout où Mise en service et gouvernance du cloud les scripts sont autorisés.
À l’aide d’expressions
Les expressions peuvent contenir les valeurs d’informations générées dynamiquement dans le système, telles que les valeurs des sélections effectuées par les utilisateurs dans le Portail de l'utilisateur dans le cloud fichier . Les expressions sont disponibles dans des blocs de ressources, des plans, des stratégies et partout où Mise en service et gouvernance du cloud les scripts sont autorisés.
- Utilisation d’expressions dans des blocs de ressources
Chaque opération de bloc de ressources utilise une expression pour contenir une valeur pour chaque paramètre. L’expression peut utiliser des valeurs codées en dur, des données de la pile que l’utilisateur met en service dans la Portail de l'utilisateur dans le cloud, des données de la CMDB et des données dérivées de scripts. Par défaut, Mise en service et gouvernance du cloud génère un ensemble de paramètres et leurs expressions pour chaque opération de bloc de ressources.
Par exemple, le paramètre Location, qui contient le centre de données auquel appartient une ressource, utilise l’expression
${parameter. Emplacement}Figure 1. Expressions dans un bloc de ressources - Utilisation d’expressions dans des plans
Les plans peuvent utiliser des expressions pour mapper les paramètres d’entrée de chaque opération sur un bloc de ressources. Par défaut, le plan affiche les mêmes paramètres et valeurs que ceux spécifiés dans le bloc de ressources.
Vous pouvez accéder aux attributs de plan avec des expressions. L’expression de la colonne Mappage définit les attributs de plan pour chaque opération d’une étape. Par exemple, l’attribut Emplacement , qui apparaît sur le formulaire de demande de pile, est accessible via le
paramètre {$parameter. Location}. Le paramètre Location avec leparamètre ${. La valeur Emplacement}s’affiche dans l’onglet Entrées lorsque vous sélectionnez une opération de plan.Figure 2. Expressions dans un plan - Utilisation d’expressions dans les actions de politique
Les actions de politique peuvent utiliser des expressions pour remplacer les valeurs de paramètres que les utilisateurs soumettent dans un formulaire de demande sur le Portail de l'utilisateur dans le cloud. Vous pouvez également accéder aux données utilisateur et les remplacer dans les opérations de pile. Par exemple, utilisez l’expression suivante pour renommer une pile :
formData.Stackname = « your-naming-convention » ;.Figure 3. Expressions dans un script de politique
Vous pouvez accéder aux attributs de plan avec des expressions. L’expression de la colonne Mappage définit les attributs de plan pour chaque opération d’une étape. Par exemple, l’attribut Emplacement , qui apparaît sur le formulaire de demande d’une machine virtuelle, est accessible dans l’expression suivante : {$parameter. Emplacement}.
Types d’expression
- Expressions de définition
- Les expressions définitionnelles sont une forme de liaison précoce (ou liaison statique). Ces liaisons font référence à la liaison au moment de la compilation et sont évaluées lorsque l’utilisateur soumet le formulaire de demande de pile (lorsque la mise en service de la pile ou des ressources commence). Les expressions de définition n’ont pas accès aux données générées pendant Orchestration. Les expressions de définition sont placées entre accolades. Par exemple :
${paramètre. CloudAccount} - Expressions d’exécution
- Les expressions d’exécution sont une forme de liaison tardive (ou liaison dynamique). Ces liaisons font référence à la liaison d’exécution et ont accès aux données qui sont créées pendant Orchestration (par exemple, les éléments de pile). Les expressions d’exécution sont évaluées lorsqu’elles sont appelées pendant une Orchestration exécution. Les expressions d’exécution sont généralement utilisées pour la remontée pas à pas vers les données dans les tables. Les expressions d’exécution sont placées entre parenthèses. Par exemple :
$(Stack.items[VM1].attributes[node_id]) - Expressions de définition/d’exécution
- Certaines expressions incluent à la fois des expressions de définition et des expressions d’exécution.
- Expressions complexes
- Vous pouvez imbriquer des expressions de n’importe quel type dans d’autres expressions.
Définition, expression, syntaxe et exemples
${paramètre.}. Utilisez ce type d’expression pour récupérer des valeurs à partir des attributs d’entrée de processus tels que les mises en service de plan. Les données ne sont pas extraites des tables.${Stack.items[]}. Utilisez cette syntaxe pour accéder aux attributs d’éléments spécifiques dans une pile.${randomNumber}. Utilisez cette syntaxe pour générer un nombre aléatoire. Par exemple, vous pouvez mettre en service une machine virtuelle avec un nom de nœud ou un nom de pile aléatoire.
| Exemple | Description |
|---|---|
| ${paramètre. Code de facturation} | Cette expression montre comment un paramètre de code de facturation apparaît dans un plan. |
| ${parameter.formData.CatalogAttributeType} | Cette expression utilise un attribut de catalogue soumis par un utilisateur pendant que l’utilisateur remplit le formulaire pour un élément de catalogue dans le Portail de l'utilisateur dans le cloud. |
| ${parameter.userData.userId} | Cette expression utilise l’ID d’un utilisateur pendant que l’utilisateur remplit le formulaire pour un élément de catalogue dans le Portail de l'utilisateur dans le cloud. |
| ${Stack.items[Serveur virtuel].attributs[sys_id]} | Cette expression obtient le sys_id d’un serveur virtuel qui fait partie d’une pile. Le serveur virtuel est l’alias d’un bloc de ressources utilisé dans la pile. |
Syntaxe et exemples d’expressions d’exécution
$(ci.tablename)oùtablenameest une table du système, généralement une table CI dans la CMDB. Utilisez cette syntaxe pour accéder aux valeurs des champs de la table.$(Stack.items[]).Utilisez cette syntaxe pour accéder aux attributs d’éléments spécifiques dans une pile.
| Exemple | Description |
|---|---|
$(ci.cmdb_ci_cloud_subnet[ sys_id=12231231231231231231].cidr) |
Cette expression effectue une remontée pas à pas vers la table Sous-réseau dans le cloud, trouve l’enregistrement spécifique avec le sys_id donné et prend la valeur de la colonne CIDR . |
$(ci.sn_cmp _ip_pool[subnet=${parameter.formData.ID de sous-réseau}]) |
Cette expression combine les expressions de type exécution et définition. Le signe égal = est utilisé pour évaluer une valeur pour une correspondance. L’expression effectue une remontée pas à pas vers la table Pool d’adresses IP et recherche le sous-réseau qui contient l’ID de sous-réseau soumis par l’utilisateur. |
$(ci.cmdb_ci_cloud_subnet[${parameter.formData.SubnetId}].cidr) |
Cette expression combine les expressions de type exécution et définition. L’expression prend la valeur du champ CIDR à partir d’un sous-réseau que l’utilisateur a choisi lors de la mise en service. Les crochets [] indiquent que l’expression effectue une remontée pas à pas vers la table Sous-réseau dans le cloud, puis examine la valeur de sous-réseau que l’utilisateur a soumise lors de la mise en service d’un plan. L’expression saisit la valeur du champ CIDR , puis accède à la valeur du champ CIDR du sys_id du sous-réseau. |
| $(Stack.items[Serveur virtuel].attributs[sys_id]) | Comme dans l’exemple de l’expression de définition, cette expression prend la sys_id d’un serveur virtuel qui fait partie d’une pile. |
Exemple d’expression
$(ci.cmdb_ci_nic[$(Script :CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])])].private_ip) - $(ci: expression d’exécution pour récupérer les données de la table.
- cmdb_ci_nic: CI pour NIC (Carte d’interface réseau).
- $(Script: expression basée sur un script.
- CMPVMNICs: include de script.
- getNICs: fonction à l’intérieur d’une inclusion de script.
- arg: arguments pour la fonction d’inclusion de script. Les arguments sont séparés par « , » lorsqu’il existe plusieurs attributs.
- $(Stack.items: expression de pile d’exécution pour récupérer un élément de pile à partir d’une pile. L’argument est l’alias spécifié dans le plan.
- Virtual Server: alias de la ressource utilisée dans le plan.
- $(Stack.items[Virtual Server].attributes[sys_id]): récupérer sys_id de l’instance de ressource d’élément de pile (« serveur virtuel ») dans une pile.
- private_ip: attribut d’cmdb_ci_nic. Remplacez-la par une adresse IP publique si nécessaire.
Expressions
Simple parameter mapping expression Ce type d’expression récupère les valeurs à partir des attributs d’entrée des processus, tels que les opérations de plan, les blocs de ressources et les politiques. Les données ne sont pas extraites des tables. Mappe les valeurs d’une couche à une autre, par exemple d’un plan à une ressource à l’API dans le cloud.
|
Stack item expression Une instance CI dans la CMDB représente chaque élément de la pile. Utilisez les expressions d’élément de pile pour rechercher des propriétés de premier niveau sur le CI qui soutient l’élément de pile ou sur l’élément de pile lui-même.
|
Property override expressions in policies Dans les stratégies, vous pouvez remplacer les propriétés en extrayant une valeur du système ou en utilisant un nombre aléatoire. Vous pouvez utiliser les données des formulaires et Portail de l'utilisateur dans le cloud de l’utilisateur qui a effectué l’opération sur le formulaire.
|
Script expression Dans l’exemple,
|
CI lookup expression Accède aux valeurs des champs d’une table, généralement une table CI de la CMDB.
|
Random number expression Génère un nombre aléatoire. Par exemple, vous pouvez mettre en service une machine virtuelle avec un nom de nœud ou un nom de pile aléatoire.
|
Scratchpad expression/Resource operation output attribute expression Lit les attributs de sortie d’une opération dans une autre.
|
Conditions in expressions Vous pouvez utiliser des expressions conditionnelles dans les étapes de plan et les étapes d’opération de ressource pour exécuter ou ignorer l’étape sous conditions. Les expressions conditionnelles sont des expressions Javascript et prennent en charge les substitutions d’expressions.
|
Complex expression Vous pouvez imbriquer des expressions. Dans l’exemple,
|
Order context Cette expression est utile pour les opérations de cycle de vie et vous permet de remonter pas à pas les attributs de commande dans le cadre de la sn_cmp_order table.
|