Ausdrücke in Cloud Provisioning and Governance verwenden
Ausdrücke in Richtlinienaktionen können Werte festlegen oder überschreiben. Ausdrücke in Blaupausen können auf Attribute von Ressourcen zugreifen und Werte Anforderungsformularfeldern zuordnen. Ausdrücke sind in Ressourcenblöcken, Blaupausen, Richtlinien und überall sonst verfügbar, wo Cloud Provisioning and Governance Skripts zulässt.
Ausdrücke verwenden
Ausdrücke können die Werte für Informationen enthalten, die dynamisch im System generiert werden, z. B. die Werte für die Auswahlen, die Benutzer im Cloudbenutzerportal treffen. Ausdrücke sind in Ressourcenblöcken, Blaupausen, Richtlinien und überall sonst verfügbar, wo Cloud Provisioning and Governance Skripts zulässt.
- Ausdrücke in Ressourcenblöcken verwenden
Jeder Ressourcenblockvorgang verwendet einen Ausdruck, der einen Wert für jeden Parameter enthält. Der Ausdruck kann hartcodierte Werte, Daten aus dem Stapel, den der Benutzer im Cloudbenutzerportal bereitstellt, Daten in der CMDB und Daten, die aus Skripts abgeleitet sind, verwenden. Standardmäßig generiert Cloud Provisioning and Governance eine Reihe von Parametern und ihren Ausdrücken für jeden Ressourcenblockvorgang.
Beispiel: Der Parameter Location, der das Rechenzentrum enthält, zu dem eine Ressource gehört, verwendet den Ausdruck
${parameter.Location}.Abbildung : 1. Ausdrücke in einem Ressourcenblock - Ausdrücke in Blaupausen verwenden
Blaupausen können Ausdrücke verwenden, um Eingabeparameter für jeden Vorgang in einem Ressourcenblock zuzuordnen. Standardmäßig zeigt die Blaupause die gleichen Parameter und Werte an, die im Ressourcenblock angegeben sind.
Sie können auf Blaupausenattribute mit Ausdrücken zugreifen. Der Ausdruck in der Spalte Zuordnung definiert Blaupausenattribute für jeden Vorgang in einem Schritt. Beispielsweise kann auf das Attribut Standort, das auf dem Stack-Anforderungsformular angezeigt wird, über den Ausdruck
${parameter.Location}zugegriffen werden. Der Standortparameter mit dem Wert${parameter.Location}wird auf der Registerkarte Eingaben angezeigt, wenn Sie einen Blaupausenvorgang auswählen.Abbildung : 2. Ausdrücke in einer Blaupause - Ausdrücke in Richtlinienaktionen verwenden
Richtlinienaktionen können Ausdrücke verwenden, um Parameterwerte zu überschreiben, die Benutzer in einem Anforderungsformular im Cloudbenutzerportal übermitteln. Sie können auch in Stack-Vorgängen auf Benutzerdaten zugreifen und diese überschreiben. Verwenden Sie beispielsweise den folgenden Ausdruck, um einen Stapel umzubenennen:
formData.Stackname = "Ihre-Namenskonvention";.Abbildung : 3. Ausdrücke in einem Richtlinienskript
Sie können auf Blaupausenattribute mit Ausdrücken zugreifen. Der Ausdruck in der Spalte Zuordnung definiert Blaupausenattribute für jeden Vorgang in einem Schritt. Beispielsweise kann auf das Attribut Standort, das auf dem Anforderungsformular für einen virtuellen Computer angezeigt wird, über den Ausdruck ${parameter.Location} zugegriffen werden.
Ausdruckstypen
- Definitionsausdrücke
- Definitionsausdrücke sind eine Form der frühen Bindung (oder statischen Bindung). Diese Bindungen beziehen sich auf die Bindung zur Kompilierungszeit und werden ausgewertet, wenn der Benutzer das Stapelanforderungsformular übermittelt (wenn die Stapel- oder Ressourcenbereitstellung beginnt). Definitionsausdrücke haben keinen Zugriff auf die Daten, die während Orchestration generiert werden. Definitionsausdrücke werden in geschweifte Klammern eingeschlossen. Beispiel:
${parameter.CloudAccount} - Laufzeitausdrücke
- Laufzeitausdrücke sind eine Form der späten Bindung (oder dynamischen Bindung). Diese Bindungen beziehen sich auf die Bindung zur Laufzeit und haben Zugriff auf die Daten, die während Orchestration erstellt werden (z. B. Stapelelemente). Laufzeitausdrücke werden ausgewertet, wenn sie während einer Ausführung von Orchestration aufgerufen werden. Laufzeitausdrücke werden normalerweise für Dot-Walking mit Daten in Tabellen verwendet. Laufzeitausdrücke sind in Klammern eingeschlossen. Beispiel:
$(Stack.items[VM1].attributes[node_id]) - Definitions-/Laufzeitausdrücke
- Einige Ausdrücke enthalten sowohl Definitions- als auch Laufzeitausdrücke.
- Komplexe Ausdrücke
- Sie können Ausdrücke beliebigen Typs in anderen Ausdrücken verschachteln.
Syntax und Beispiele für Definitionsausdrücke
${parameter.}. Verwenden Sie diese Art von Ausdruck, um Werte aus Eingabeattributen von Prozessen wie der Bereitstellung von Blaupausen abzurufen. Daten werden nicht aus Tabellen abgerufen.${Stack.items[]}. Verwenden Sie diese Syntax für den Zugriff auf Attribute bestimmter Elemente in einem Stapel.${randomNumber}. Verwenden Sie diese Syntax, um eine Zufallszahl zu generieren. Beispielsweise können Sie eine VM mit einem zufälligen Knotennamen oder Stapelnamen bereitstellen.
| Beispiel | Beschreibung |
|---|---|
| ${parameter.BillingCode} | Dieser Ausdruck zeigt, wie ein Abrechnungscode-Parameter in einer Blaupause angezeigt wird. |
| ${parameter.formData.CatalogAttributeType} | Dieser Ausdruck verwendet ein Katalogattribut, das von einem Benutzer übermittelt wird, während der Benutzer das Formular für ein Katalogelement im Cloudbenutzerportal ausfüllt. |
| ${parameter.userData.userId} | Dieser Ausdruck verwendet die ID eines Benutzers, während der Benutzer das Formular für ein Katalogelement im Cloudbenutzerportal ausfüllt. |
| ${Stack.items[Virtueller Server].attributes[sys_id]} | Dieser Ausdruck ruft die sys_id eines virtuellen Servers ab, der Teil eines Stapels ist. „Virtueller Server“ ist der Alias eines Ressourcenblocks, der im Stapel verwendet wird. |
Syntax und Beispiele für Laufzeitausdrücke
$(ci.tablename), wobeitablenameeine Tabelle im System ist, normalerweise eine CI-Tabelle in der CMDB. Verwenden Sie diese Syntax, um auf Werte von Feldern in der Tabelle zuzugreifen.$(Stack.items[]). Verwenden Sie diese Syntax für den Zugriff auf Attribute bestimmter Elemente in einem Stapel.
| Beispiel | Beschreibung |
|---|---|
$(ci.cmdb_ci_cloud_subnet[ sys_id=12231231231231231231].cidr) |
Dieser Ausdruck führt ein Dot-Walking mit der Tabelle „Cloud-Subnetz“ durch, sucht den spezifischen Datensatz mit der angegebenen sys_id und übernimmt den Wert aus der Spalte cidr. |
$(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}]) |
Dieser Ausdruck kombiniert Ausdrücke der Typen Laufzeit und Definition. Das Gleichheitszeichen „=“ wird verwendet, um einen Wert für eine Übereinstimmung auszuwerten. Der Ausdruck führt ein Dot-Walking für die Tabelle „IP-Pool“ durch und sucht nach dem Subnetz mit der Subnetz-ID, die der Benutzer übermittelt hat. |
$(ci.cmdb_ci_cloud_subnet[${parameter.formData.SubnetId}].cidr) |
Dieser Ausdruck kombiniert Ausdrücke der Typen Laufzeit und Definition. Der Ausdruck übernimmt den Wert des Felds cidr aus einem Subnetz, das der Benutzer bei der Bereitstellung ausgewählt hat. Die eckigen Klammern [] geben an, dass der Ausdruck die Tabelle „Cloud-Subnetz“ per Dot-Walking auswertet und dann den Wert für „Subnetz“ betrachtet, den der Benutzer für eine Blaupausenbereitstellung übermittelt hat. Der Ausdruck erfasst den Wert des Felds cidr und geht dann zu dem Wert im Feld cidr der sys_id des Subnetzes. |
| $(Stack.items[Virtueller Server].attributes[sys_id]) | Wie auch im Beispiel zum Definitionsausdruck ruft dieser Ausdruck die sys_id eines virtuellen Servers ab, der Teil eines Stapels ist. |
Beispielausdruck
$(ci.cmdb_ci_nic[$(Script:CMPVMNICs.getNICs[arg=$(Stack.items[Virtueller Server].attributes[sys_id])])].private_ip) - $(ci: Laufzeitausdruck zum Abrufen von Daten aus der Tabelle.
- cmdb_ci_nic: CI für Netzwerkschnittstellenkarte (NIC).
- $(Script: Skriptbasierter Ausdruck.
- CMPVMNICs: Skripteinbindung.
- getNICs: Funktion in einer Skripteinbindung.
- arg: Argumente für die Funktion in der Skripteinbindung. Argumente werden durch Komma (,) getrennt, wenn mehrere Attribute vorhanden sind.
- $(Stack.items: Laufzeit-Stapelausdruck zum Abrufen eines Stapelelements aus einem Stapel. Argument ist der in der Blaupause angegebene Alias.
- Virtual Server: Alias der in der Blaupause verwendeten Ressource.
- $(Stack.items[Virtual Server].attributes[sys_id]): Ruft die sys_id der Ressourceninstanz des Stapelelements („Virtueller Server“) in einem Stapel ab.
- private_ip: Attribut von cmdb_ci_nic. Bei Bedarf durch öffentliche IP-Adresse ersetzen.
Ausdrücke
Simple parameter mapping expression Dieser Ausdruckstyp ruft Werte aus Eingabeattributen von Prozessen ab, z. B. Blaupausenvorgängen, Ressourcenblöcken und Richtlinien. Daten werden nicht aus Tabellen abgerufen. Er ordnet Werte einer Ebene einer anderen zu, z. B. von einer Blaupause zu einer Ressource zur Cloud API.
|
Stack item expression Jedes Stapelelement wird durch eine CI-Instanz in der CMDB dargestellt. Verwenden Sie Stapelelementausdrücke, um Eigenschaften der ersten Ebene im CI oder im Stapelelement selbst zu suchen, die das Stapelelement unterstützen.
|
Property override expressions in policies In Richtlinien können Sie Eigenschaften überschreiben, indem Sie einen Wert aus dem System abrufen oder eine Zufallszahl verwenden. Sie können Daten sowohl aus den Formularen im Cloudbenutzerportal als auch von dem Benutzer verwenden, der den Vorgang auf dem Formular ausgeführt hat.
|
Script expression Im Beispiel ist
|
CI lookup expression Greift auf Werte von Feldern in einer Tabelle zu, normalerweise eine CI-Tabelle in der CMDB.
|
Random number expression Generiert eine Zufallszahl. Beispielsweise können Sie eine VM mit einem zufälligen Knotennamen oder Stapelnamen bereitstellen.
|
Scratchpad expression/Resource operation output attribute expression Liest Ausgabeattribute aus einem Vorgang in einen anderen Vorgang.
|
Conditions in expressions Sie können bedingte Ausdrücke in Blaupausenschritten und Ressourcenvorgangsschritten verwenden, um den Schritt bedingt auszuführen oder zu überspringen. Die bedingten Ausdrücke sind Javascript-Ausdrücke und unterstützen das Ersetzen von Ausdrücken.
|
Complex expression Sie können Ausdrücke schachteln. Im Beispiel ordnet
|
Order context Dieser Ausdruck ist für Lebenszyklusvorgänge nützlich und ermöglicht Ihnen das Dot-Walking für die Bestellattribute als Teil der Tabelle sn_cmp_order.
|