Mithilfe von Erweiterbarkeitsaktionen können Sie Cloud Assembly mit einer ITSM-Unternehmenslösung wie ServiceNow integrieren.
Zum Erstellen dieser Integration verwenden Sie vier Erweiterbarkeitsaktionsskripts. Die ersten drei Skripts werden nacheinander während der Bereitstellung beim Compute-Bereitstellungs-Post-Ereignis initiiert. Das vierte Skript löst das Compute-Entfernungs-Post-Ereignis aus.
Weitere Informationen zu Ereignisthemen finden Sie unter Mit Cloud Assembly bereitgestellte Ereignisthemen.
VM-Details abrufen
Das Skript zum Abrufen von VM-Details erfasst zusätzliche Nutzlastdetails, die für die CI-Erstellung erforderlich sind, sowie ein Identitätstoken, das in Amazon Web Services Systems Manager Parameter Store (SSM) gespeichert ist. Außerdem aktualisiert dieses Skript customProperties mit zusätzlichen Eigenschaften für die spätere Verwendung.
ServiceNow-CMDB-Konfigurationselement erstellenServiceNow-Änderung erstellen
Dieses Skript beendet die ITSM-Integration, indem die Instanz-URL von ServiceNow als Eingabe übergeben und die ServiceNow-Anmeldedaten als SSM gespeichert werden, um die Sicherheitsanforderungen zu erfüllen.
ServiceNow-Änderung erstellen
Das Skript zum Zurückziehen des ServiceNow-CMDB-Konfigurationselements fordert ServiceNow zum Anhalten auf und markiert das Konfigurationselement basierend auf der benutzerdefinierten Eigenschaft serviceNowSysId, die im Erstellungsskript erstellt wurde, als veraltet.
Voraussetzungen
- Bevor Sie diese Integration konfigurieren, filtern Sie alle Ereignisabonnements mit der bedingten Cloud-Vorlageneigenschaft: event.data["customProperties"]["enable_servicenow"] === "true"
Hinweis: Diese Eigenschaft ist in Cloud-Vorlagen vorhanden, die eine ServiceNow-Integration benötigen.
- Laden Sie Python herunter und installieren Sie es.
Weitere Informationen zum Filtern von Abonnements finden Sie unter Erstellen eines Erweiterbarkeitsabonnements.
Prozedur
Ergebnisse
Cloud Assembly wurde erfolgreich in ITSM-Lösung ServiceNow integriert.
Nächste Maßnahme
from botocore.vendored import requests import json import boto3 client = boto3.client('ssm','ap-southeast-2') def handler(context, inputs): snowUser = client.get_parameter(Name="serviceNowUserName",WithDecryption=False) snowPass = client.get_parameter(Name="serviceNowPassword",WithDecryption=True) tableName = "cmdb_ci_vmware_instance" sys_id =inputs['customProperties']['serviceNowSysId'] url = "https://" + inputs['instanceUrl'] + "/api/now/"+tableName+"/{0}".format(sys_id) headers = {'Content-type': 'application/json', 'Accept': 'application/json'} payload = { 'state': 'Retired' } results = requests.put( url, json=payload, headers=headers, auth=(inputs['username'], inputs['password']) ) print(results.text)
Weitere Informationen zur Verwendung von Erweiterbarkeitsaktionen für die Integration von ServiceNow in Cloud Assembly finden Sie im Blogbeitrag Extending Cloud Assembly with Action Based Extensibility for ServiceNow Integration, der die Erweiterung von Cloud Assembly mit aktionsbasierter Erweiterbarkeit für die ServiceNow-Integration behandelt.