Cloud-API (CAPI)
Die Cloud-API (CAPI) ermöglicht die Integration von Cloud Provisioning and Governance von Cloud-Providern mit REST APIs.
CAPI-Komponenten
Die Integration mit Cloud-Providern erfolgt über REST-Aufrufe wie PUT, GET, POST und DELETE. CAPI bietet das Framework für die Integration einer REST API von Cloud-Anbietern, was Ihrer Instanz die Kommunikation mit dem Cloud-Anbieter ermöglicht, um Cloud-Ressourcen zu verwalten.
- Anbieter
Cloud-Anbieter sind die Clouds, mit denen Sie eine Verbindung herstellen können. Standardmäßig umfasst Cloud Provisioning and Governance die am häufigsten verwendeten Anbieter wie AWS, Azure und VMware. Jeder Anbieter verfügt über viele Produkte, von denen jedes Ressourcentypen bereitstellt. Jeder Ressourcentyp wird einem einzelnen CI-Typ zugeordnet. Zum Beispiel enthält AWS provider das Produkt AWS Elastic Compute Cloud, was den Ressourcentyp AWS::EC2::Instance umfasst. Dieser Ressourcentyp ist eine der gängigsten Cloud-Ressourcen, die Sie erstellen können. Der Ressourcentyp wird direkt dem CI-Typ der VM-Instanz [cmdb_ci_vm_instance] zugeordnet, wobei virtuelle Maschinen in der CMDB gespeichert werden.
- Schnittstellen
Schnittstellen definieren das Framework, das das System benötigt, um die REST-Aufrufe zu strukturieren, die von den Cloud-Provider-APIs erwartet werden. Schnittstellen definieren den Betrieb, d. h. die Methoden, und die für die einzelnen Methoden erforderlichen Parameter.
Schnittstellen können wiederverwendet werden. Wenn Sie CAPI um neue Produkte und APIs erweitern, können Sie vorhandene Schnittstellen verwenden, um dieselben REST-Aufrufe durchzuführen.
- APIs
CAPI-APIs sind die Kernkomponente von CAPI, über die ein Produkt und eine Schnittstelle miteinander verbunden sind. Die APIs enthalten den tatsächlichen Code, den das System ausführt.
Jede CAPI-API enthält die folgenden Komponenten:- CAPI-Methodenzuordnungen stellen die Methoden bereit , die den in der Schnittstelle definierten Vorgängen zugeordnet sind. Über CAPI-Methodenzuordnungen erstellen Sie MID-Server Skripteinbindungen in JavaScript, um dem Cloud-Anbieter genau mitzuteilen, was zu tun ist. Über die Skripteinbindungen wird die Verbindung zum Cloud-Anbieter hergestellt.Hinweis:Wenn Sie benutzerdefinierte CAPI-APIs erstellen, stellt das System eine leere Skripteinbindung bereit, die Sie anpassen können. Sie können bei Bedarf auch vorhandene Skripteinbindungen in Methodenzuordnungen ändern. Allerdings verwenden viele der Standard-APIs, die mit der Anwendung Cloud Provisioning and Governance geliefert werden, keine änderbaren Skripteinbindungen. Die Verbindungen sind in Java fest codiert. Sie können diese APIs weiterhin in neuen von Ihnen erstellten Ressourcenblöcken verwenden, aber die APIs können nicht geändert werden.
- API-Konfigurationsüberschreibungen enthalten die Identität (z. B. einen Schlüssel) und Anmeldeinformationen (z. B. den geheimen Schlüssel) und andere wichtige Parameter, die der Cloud-Anbieter benötigt. Diese Parameter helfen dem Cloud-Anbieter, die Vorgänge in der den CAPI-Methodenzuordnungen zugehörigen Liste durchzuführen. API-Konfigurationsüberschreibungen sind erforderlich, da Anmeldeinformationsdaten nicht enthalten sind, wenn das System die API des Cloudanbieters über REST aufruft. Ressourcenblöcke verwenden die Parameter und Werte, die Sie in den API-Konfigurationsüberschreibungen definieren, um den Anmeldeinformationsspeicher abzufragen. Wenn die API ausgeführt wird, werden die Attribute für alle Methodenaufrufe in den von Ihnen verwendeten Skripteinbindungen verfügbar gemacht.
Die Überschreibungen gelten nur für diese API. Die Überschreibungen überschreiben nichts in anderen APIs.
Da mehrere Versionen einer CAPI-API mit geringfügigen Abweichungen definiert werden können, kann eine vorhandene API erweitert werden (ohne sie zu überschreiben), während die gewünschte Funktionalität beibehalten wird.
- CAPI-Methodenzuordnungen stellen die Methoden bereit , die den in der Schnittstelle definierten Vorgängen zugeordnet sind. Über CAPI-Methodenzuordnungen erstellen Sie MID-Server Skripteinbindungen in JavaScript, um dem Cloud-Anbieter genau mitzuteilen, was zu tun ist. Über die Skripteinbindungen wird die Verbindung zum Cloud-Anbieter hergestellt.
In diesem Beispiel ist das Produkt Microsoft.Compute beim Anbieter Azure enthalten. Azure verwendet das Produkt Microsoft.Compute für virtuelle Computer. In Ihrem Fall ist das Produkt Microsoft.Compute dem Ressourcentyp Microsoft.Compute/virtualMachines zugeordnet, der mit dem CI-Typ Virtual Machine Instance in der CMDB verknüpft ist.
Die Schnittstelle Compute enthält Definitionen für Methoden wie CreateNode, die definiert, wie der tatsächliche virtuelle Computer erstellt wird. Von den vielen Parametern, die CreateNode verwendet, erfasst Location das Rechenzentrum, in der sich der virtuelle Computer befindet.
Azure Compute API verbindet das Produkt Microsoft.Compute und die in der Schnittstelle Compute definierte Struktur. Die Implementierung der Methode CreateNode ruft das Script Include azure-compute-1.0-CreateNode MID-Server auf , das das Script Include AzureComputeVirtualMachine MID-Server aufruft. Die Script Includes führen die tatsächlichen Aufrufe der Azure-API aus. Für den Zugriff auf das Azure-Konto werden die Methoden SecretKey, ClientID, TenantID sowie weitere Methoden in Konfigurationsüberschreibungen übergeben.
So führt CAPI eine Integration mit der Instanz durch
- Cloud Provisioning and Governance Ressourcenblöcke
Ein Ressourcenblock stellt eine einzelne Cloud-Ressource dar, z. B. einen virtuellen Server, virtuellen Serverspeicher oder ein Rechenzentrum. Ein Ressourcenblock kann auch als CI-Typ in der CMDB angesehen werden. Viele Ressourcenblöcke werden zu einer Blaupause zusammengefasst, die Benutzern im Cloud-Katalog als Katalogelement (auch Stapel genannt) angezeigt wird.
Im System kann jeder Ressourcenblock als Container angesehen werden, der auf CAPI verweist und Antworten des Cloud-Anbieters mit einem bestimmten CI verknüpft. Ressourcenblöcke verwenden Folgendes:- Operative Schritte, die CAPI für jeden Vorgang aufrufen, z. B. den Bereitstellungsvorgang, und erforderliche Parameterwerte weitergeben, die der Cloud-Anbieter zum Ausführen des Vorgangs benötigt.
- Antwortprozessoren, die die REST-Antwort des Anbieters verarbeiten und analysieren und Datensätze in der CMDB aktualisieren.
- Die CMDB
Jeder Ressourcenblock basiert auf einem CI-Typ der CMDB. Für Cloud Provisioning and Governance basieren alle cloud-bezogenen CI-Typen auf der Klasse Virtual Machine Object CI, die alle Attribute bereitstellt, die für alle standardmäßig unterstützten Cloud-Ressourcen benötigt werden. Wenn in Basissystem kein CI-Typ für eine Cloudressource vorhanden ist, müssen eine neue CI-Klasse erstellt und die erforderlichen Attribute hinzugefügt werden.
Wenn Sie eine neue CI-Klasse erstellen, müssen Sie auch Folgendes erstellen:- Eine CI-Klasse für jede der Ressourcen, die den Benutzern zur Verfügung stehen. Alle CI-Klassen basieren auf der VM-Objektklasse.
- Eine Identifizierungsregel, die eine Objekt-ID angibt. Immer, wenn Komponenten von Cloud-Management auf eine bestimmte Cloud-Ressource in der CMDB verweisen, benötigen sie die Objekt-ID, um die richtige Cloud-Ressource zu finden.
- Eine Beziehungsregel, die angibt, wie die CI-Klasse für die Ressource mit anderen CI-Klassen verknüpft ist. Beispielsweise muss eine CI des Typs virtual server eine Beziehung des Typs Hosted on::Hosts mit einer CI des Typs datacenter haben. Diese Beziehungsregeln sind für die Eindeutigkeit von CIs erforderlich, wenn sie von der Engine für Identifizierung und Abgleich (Identification and Reconciliation Engine = IRE) verarbeitet werden. Die Kombination aus Servicekonto, Objekt-ID der Ressource und Datencenter (oder Standort), in dem sich die Ressource befindet, bestimmt die Eindeutigkeit.
- Script Include MID-Server
- Jeder Vorgang in der CAPI-API verfügt über eine Script Include MID-Server, die Sie konfigurieren. Die Script Include ruft die JavaScript-Klassen auf, die sich bereits in anderen Skripteinbindungen im System befinden, oder die von Ihnen erstellt wurden. Letzten Endes wird die Aufruferklasse aufgerufen, um den REST-Aufruf auszulösen. MID-Server-Skripteinbindungen werden auf der Instanz ServiceNow konfiguriert, aber auf MID-Server ausgeführt.
Dieses Bild zeigt, wie die Komponenten zusammenarbeiten, wenn ein Benutzer eine Ressource aus Cloudbenutzerportal bereitstellt:
REST-Aufrufe zum Cloud-Anbieter
- Die Klassen, die Sie aus Skripteinbindungen des Typs MID-Server aufrufen können. Weitere Informationen finden Sie unter CAPI-Klassen in MID-Server-Skripteinbindungen.
- So implementiert der Cloud-Anbieter REST: Siehe:
- Der Endpunkt ist
management.azure.com. - Die Methode, die mit einem PUT-Vorgang aufgerufen wird, ist
subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}?api-version=2018-02-01, wobei Sie die Abonnement-ID, den Ressourcengruppennamen und die API-Version angeben.
Denken Sie daran, dass die REST API-Aufrufe innerhalb der Skripteinbindungen vom Typ MID-Server stattfinden , die CAPI-API-Methodenzuordnungen zugeordnet sind. Sie rufen die Methoden auf, die CAPI bereits für Sie bereitstellt, indem Sie die von CloudAPIBase und CloudRESTAPIInvoker erweiterten Klassen verwenden. Sie können auch weitere Skripteinbindungen erstellen, um diese Basisklassen zu erweitern und eigene Klassen zu erstellen. Machen Sie sich mit diesen Basisklassen und den darin verfügbaren Methoden vertraut.
Hier geht es los
- Überprüfen Sie die mit bereitgestellten CAPI-APIs Cloud Provisioning and Governance standardmäßig aktiviert.
- Überprüfen Sie die CAPI-Klassen, die standardmäßig bereitgestellt werden. Diese Klassen können über die Skripteinbindungen von MID-Server in Ihren CAPI-API-Vorgängen aufgerufen werden.
- Sehen Sie sich eine Vorstellung der Bereitstellung eines virtuellen Azure-Computers und eines virtuellen AWS-Computers an, um zu sehen, wie die Komponenten zusammenarbeiten. Die exemplarische Vorgehensweise für Azure verwendet eine Skripteinbindung von MID-Server, damit Sie die verschiedenen beim Bereitstellungsvorgang verwendeten CAPI-Klassen einsehen können. Die AWS-Vorstellung verwendet keine Skripteinbindung von MID-Server.
- Einem vorhandenen Provider in CAPI ein Produkt hinzufügen.
- Eine CI-Klasse für eine virtuelle Cloud-Ressource erstellen.
- Eine CAPI-Schnittstelle erstellen oder erweitern.
- Eine CAPI-API erstellen und eine benutzerdefinierte MID-Server-Skripteinbindung, die die REST-Aufrufe beim Cloud-Anbieter ausführt. Für neue CAPI-APIs wird immer eine leere Skripteinbindung von MID-Server generiert. Ändern Sie sie mit den Aufrufen anderer JavaScript-Klassen und -Methoden, z. B. den Methoden in der Aufrufer-Klasse.