Utiliser des expressions dans Cloud Provisioning and Governance
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 mapper des valeurs aux champs de formulaire de demande. Les expressions sont disponibles dans les blocs de ressources, les plans, les politiques et partout où Cloud Provisioning and Governance autorise les scripts.
Utiliser des 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. Les expressions sont disponibles dans les blocs de ressources, les plans, les politiques et partout où Cloud Provisioning and Governance autorise les scripts.
- Utiliser des expressions dans les 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 le portail de l'utilisateur dans le cloud, des données de la CMDB et des données dérivées des scripts. Par défaut, Cloud Provisioning and Governance 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.Location}Figure 1. Expressions dans un bloc de ressources - Utiliser des expressions dans des plans
Les plans peuvent utiliser des expressions pour mapper les paramètres d'entrée pour chaque opération sur un bloc de ressources. Par défaut, le plan affiche les mêmes paramètres et valeurs qui sont spécifiés dans le bloc de ressources.
Vous pouvez accéder aux attributs de plan avec des expressions. L'expression dans 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 l'expression
{$parameter.Location}. Le paramètre d'emplacement avec la valeur${parameter.Location}apparaît dans l'onglet Entrées lorsque vous sélectionnez une opération de plan.Figure 2. Expressions dans un plan - Utiliser des expressions dans les actions de politique
Les actions de politique peuvent utiliser des expressions pour remplacer les valeurs de paramètre 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 = " votre-convention-de-dénomination ";.Figure 3. Expressions dans un script de politique
Vous pouvez accéder aux attributs de plan avec des expressions. L'expression dans 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'ordinateur virtuel, est accessible via l'expression suivante : {$parameter.Location}.
Types d'expression
- Expressions de définition
- L'expression de définition est une forme de liaison précoce (ou liaison statique). Ces liaisons font référence à la liaison de 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 démarre). 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 saisies entre accolades. Par exemple :
${parameter.CloudAccount} - Expressions d'exécution
- L'expression d'exécution est une forme de liaison tardive (ou de liaison dynamique). Ces liaisons font référence à la liaison d'exécution et ont accès aux données créées pendant Orchestration (par exemple, les éléments de pile). Les expressions d'exécution sont évaluées lorsqu'elles sont appelées au cours d'une exécution de Orchestration. Les expressions d'exécution sont généralement utilisées pour les données de remontée pas à pas dans les tables. Les expressions d'exécution sont saisies 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 d'exécution.
- Expressions complexes
- Vous pouvez imbriquer des expressions de n'importe quel type dans d'autres expressions.
Syntaxe et exemples d'expression de définition
${parameter.}. 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 plans. 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 un ordinateur virtuel avec un nom de nœud ou un nom de pile aléatoire.
| Exemple | Description |
|---|---|
| ${parameter.BillingCode} | 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 prend 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[Virtual Server].attributes[sys_id]} | Cette expression prend le sys_id d'un serveur virtuel qui est séparé d'une pile. Le serveur virtuel est l'alias d'un bloc de ressources utilisé dans la pile. |
Syntaxe et exemples d'expression 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 remonte 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.Subnet ID}]) |
Cette expression combine des expressions d'exécution et de définition. Le signe égal = est utilisé pour évaluer une valeur pour une correspondance. L'expression remonte pas à pas vers la table Pool d'IP et recherche le sous-réseau comportant l'ID de sous-réseau soumis par l'utilisateur. |
$(ci.cmdb_ci_cloud_subnet[${parameter.formData.SubnetId}].cidr) |
Cette expression combine des expressions d'exécution et de type définition. L'expression prend la valeur du champ cidr à partir d'un sous-réseau choisi par l'utilisateur pendant la mise en service. Les crochets [] indiquent que l'expression remonte pas à pas vers la table Sous-réseau dans le cloud, puis examine la valeur de sous-réseau soumise par l'utilisateur lors d'une mise en service de plan. L'expression utilise la valeur du champ cidr, puis remonte à la valeur du champ cidr du sys_id du sous-réseau. |
| $(Stack.items[Virtual Server].attributes[sys_id]) | Comme dans l'exemple d'expression de définition, cette expression prend le sys_id d'un serveur virtuel qui est séparé 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 (Network Interface Card).
- $(Script : expression basée sur un script.
- CMPVMNICs : script include.
- getNICs : fonction à l'intérieur d'un script include.
- arg : arguments pour la fonction script include. Les arguments sont séparés par « , » lorsqu'il existe plusieurs attributs.
- $(Stack.items : expression de pile d'exécution pour récupérer l'élément de pile à partir d'une pile. L'argument est l'alias spécifié dans le plan.
- Virtual Server : alias de ressource utilisé dans le plan.
- $(Stack.items[Virtual Server].attributes[sys_id]) : récupère le sys_id de l'instance de ressource d'élément de pile (« Serveur virtuel ») dans une pile.
- private_ip : attribut de cmdb_ci_nic. Remplacer 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 vers l'API dans le cloud.
|
Stack item expression Une instance de CI dans la CMDB représente chaque élément de pile. Utilisez les expressions Élément de la pile pour rechercher des propriétés de premier niveau sur le CI qui sauvegardera l'élément de la pile ou sur l'élément de la pile lui-même.
|
Property override expressions in policies Dans les politiques, vous pouvez remplacer les propriétés en extrayant une valeur du système ou en utilisant un nombre aléatoire. Vous pouvez utiliser à la fois les données des formulaires du portail de l'utilisateur dans le cloud et 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 de CI dans la CMDB.
|
Random number expression Génère un nombre aléatoire. Par exemple, vous pouvez mettre en service un ordinateur virtuel 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 opération.
|
Conditions in expressions Vous pouvez utiliser des expressions conditionnelles dans les étapes du plan et les étapes d'opération de ressource pour exécuter conditionnellement ou ignorer l'étape. Les expressions conditionnelles sont des expressions JavaScript et prennent en charge les substitutions d'expression.
|
Complex expression Vous pouvez imbriquer des expressions. Dans l'exemple,
|
Order context Cette expression est utile pour les opérations du cycle de vie et vous permet de remonter pas à pas vers les attributs de commande dans le cadre de la table sn_cmp_order.
|