Utilisation d’expressions dans Mise en service et gouvernance du cloud

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 10 minutes de lecture
  • 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
    Paramètre d’emplacement pour 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 le paramè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
    Paramètre et expression Location (Emplacement)
    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
    Exemple de 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

    La syntaxe autorisée utilise le symbole du dollar et des accolades. Ces types sont disponibles :
    • ${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.
    Tableau 1. Exemples d’expressions de définitions
    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

    La syntaxe autorisée utilise le signe dollar et une parenthèse. Ces types sont disponibles :
    • $(ci.tablename)tablename est 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.
    Tableau 2. Exemples d’expressions d’exécution
    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.

    • Type : définitionnel
    • Syntaxe : ${parameter.}
    • Exemples :
      • ${paramètre. BillingCode} renvoie le code de facturation.
      • ${parameter.formData.CatalogAttributeType} prend un attribut de catalogue qui est soumis sur le formulaire de demande dans le Portail de l'utilisateur dans le cloud.
      • ${parameter.userData.userId} prend l’ID d’un utilisateur travaillant sur le formulaire de demande dans le Portail de l'utilisateur dans le cloud fichier .

    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.

    • Type : définitionnel/exécution
    • Syntaxe : ${Stack.items[]} ou $(Stack.items[])
    • Exemples :

      ${Stack.items[VirtualServer1].attributes[sys_id]} est une expression de type définitionnel qui obtient les sys_id d’un serveur virtuel dans une pile. VirtualServer1 est l’alias d’un bloc de ressources utilisé dans la pile.

      $(Stack.items[VirtualServer2].attributes[sys_id]) est une expression de type runtime qui prend la sys_id d’un serveur virtuel qui fait partie d’une pile.

      ${Stack.items[vm1].attributes[node_id]} lit l’attribut node_id du CI qui a été créé pour l’ordinateur virtuel. vm1 est le nom de l’élément de pile (ou l’alias de la ressource dans le plan).

      $(Stack.items[vm1].status) lit l’état de l’élément de pile.

    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.

    • Type : définitionnel/exécution
    • Syntaxe : ${parameter.formData.xyz} ou ${this.parameter.userData.xyz}
    • Exemples :

      La valeur suivante peut définir le nom de la pile sur Stack_Bob.Smith@company.com: Stack_${parameter.userData.userId}

      Définissez les valeurs de pile ou de table à l’aide d’expressions d’exécution en prenant le sous-réseau de la table Pools d’IP :

      $(ci.sn_cmp _ip_pool[subnet=${parameter.formData.ID de sous-réseau}])

      Dans les scripts, vous pouvez affecter les valeurs suivantes :

      formData.App_Server_NodeName = « MonNomNœud » ;

      this.parameter.userData.userId == 'servicenowuserId' ;

    • Voir aussi Créer un script d’action de politique.

    Script expression

    Dans l’exemple, VMProperties est un include de script doté d’une fonction appelée getIP. Une expression de script est également un exemple d’expression complexe (l’expression est imbriquée).

    • Type : exécution
    • Syntaxe : $(Script :scriptName.function[])
    • Exemples :

      $(Script :VMPropertiesUtil.getIP[ arg=$(Stack.items[VM1].attributes[object_id])])

      Expression pour une adresse IP privée :$(ci.cmdb_ci_nic[$(Script :CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])].private_ip)

      Expression pour l’adresse IP publique : $(ci.cmdb_ci_nic[$(Script :CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])].public_ip)

      Expression permettant d’obtenir l’alias d’informations d’identification : $(Script :CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])

      Expression permettant d’obtenir l’adresse IP : $(Script :CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_id])])

    CI lookup expression

    Accède aux valeurs des champs d’une table, généralement une table CI de la CMDB.

    • Type : définitionnel/exécution
    • Syntaxe : $(ci.tableName)
    • Exemples :

      $(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}]) combine les expressions de type exécution et définition. L’opérateur = évalue 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) prend la valeur du champ CIDR à partir d’un sous-réseau que l’utilisateur a spécifié lors de la mise en service. L’expression effectue une remontée pas à pas vers la table Sous-réseau dans le cloud, examine la valeur de sous-réseau que l’utilisateur a soumise lors de la mise en service d’un plan, extrait la valeur du champ CIDR , puis accède à la valeur du champ CIDR du sys_id du sous-réseau.

    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.

    • Type : exécution
    • Syntaxe et exemple : ${randomNumber}

    Scratchpad expression/Resource operation output attribute expression

    Lit les attributs de sortie d’une opération dans une autre.

    • Type : exécution
    • Syntaxe : varie
    • Exemple : pour définir/exposer les sorties d’une opération :

      ${Compute Interface.CreateNode.Output.resp.nodeId}

      Pour lire les attributs de sortie (où VM1. La mise en service est l’opération dont les attributs de sortie sont lus) :

      $(Sorties[VM1. disposition]. NodeId)

    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.

    • Type : définitionnel/exécution
    • Syntaxe : varie
    • Exemples :

      '${paramètre. CloudAccount}'=='Compte cloud Amazon'

      '$(Stack.items[vm1].attributes[node_id]) '== 'VM1'

    Complex expression

    Vous pouvez imbriquer des expressions. Dans l’exemple, ${parameter. ServerID} mappe la sys_id du CI et est remplacé avant que l’expression externe ne soit consommée.

    • Type : n’importe lequel
    • Syntaxe : varie
    • Exemple : $(ci.cmdb_ci_vm_instance[${paramètre. ID serveur}].nom)

    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.

    • Type : exécution
    • Syntaxe : $(context.order.column_name)
    • Exemples :
      • Élément de demande : $(context.order.sc_req_item)
      • Remontée pas à pas sur l’objet de l’élément de demande : $(context.order.sc_req_item.number)
      • Expression mixte (constante + expression) : « ram$(context.order.sc_req_item.number) »