Beispielnutzlast für BYOL
Beispielnutzlast, die die Tabelle „Softwareinstallation“ [cmdb_sam_sw_install] in der Instanz ServiceNow mit Discovery-Daten füllt, die vom BYOL-Lizenzierungsmodell gesammelt wurden.
Bestimmte Entitäten müssen ausgefüllt werden, damit BYOL mit der Software-Asset-Verbindung als Drittpartei-Discovery-Quelle funktioniert. Die Beziehung zwischen diesen Entitäten ist entscheidend dafür, dass BYOL mit Software-Asset-Verbindungen reibungslos funktioniert. Beispielsweise unterscheiden sich einige Werte, die zum Ausfüllen von Cloud-Hosts erforderlich sind, für AWS und Azure. Obwohl die Objekt-ID und der Name des Hosts sowohl für AWS als auch für [ Azureerforderlich sind, ist für AWSdie Anzahl der CPU-Kerne und für Azureder Wert des Hosttyps erforderlich. Einzelheiten zu Entitäten und ihren Beziehungen finden Sie unter Entitäten für BYOL und Beziehungen zwischen den Entitäten für BYOL.
In diesem Beispiel ist der Cloud-Serviceaccount die oberste Entität. Alle anderen in der Tabelle „Entitäten für BYOL“ aufgeführten Entitäten sind abhängige Entitäten des Cloud-Servicekontos. Wenn eine Entität als abhängige Entität markiert ist, müssen die übergeordnete Entität und die Beziehung zwischen dieser Entität und dem übergeordneten Element in derselben Nutzlast erwähnt werden. Wenn Sie beispielsweise ein Rechenzentrum AWS für ein Cloud-Servicekonto erstellen möchten, müssen Sie die Entität „Cloud-Servicekonto“ in dieselbe Nutzlast aufnehmen. auch wenn das Cloud-Servicekonto in Ihrer Instanz bereits vorhanden ist. Ebenso müssen Sie beim Erstellen von Softwareinstallationen alle abhängigen Entitäten für Softwareinstallationen in der gesamten Hierarchie in dieselbe Nutzlast aufnehmen.
Entitäten für BYOL
| Entitäten | Pflichtfelder |
|---|---|
| Cloud-Servicekonto [cmdb_ci_cloud_service_account] | account_id: Eindeutiger Bezeichner |
| AWS Rechenzentren [cmdb_ci_aws_datacenter] | object_id: Eindeutiger Bezeichner |
| Azure Rechenzentren [cmdb_ci_azure_datacenter] | object_id: Eindeutiger Bezeichner |
| Cloud-Hosts [cmdb_ci_cloud_host] Hinweis: Für freigegebene VMs nicht erforderlich. |
|
| Instanzen der virtuellen Maschine [cmdb_ci_vm_instance] | object_id: Eindeutiger Bezeichner |
| Computer [cmdb_ci_computer] |
|
Softwareinstallationen [cmdb_sam_sw_install] Hinweis: „Softwareinstallationen“ [cmdb_sam_sw_install] ist ein zugehöriger Eintrag für Computer [cmdb_ci_computer]. |
|
Beziehungen zwischen den Entitäten für BYOL
| Entitätsbeziehungen | Typ | Übergeordnet | Untergeordnetes Element |
|---|---|---|---|
| AWS/Azure-Rechenzentren – Cloud-Service-Account | Gehostet auf::Hostet | AWS/Azure-Rechenzentren | Cloud-Servicekonto |
| AWS/Azure-Rechenzentren – Cloud-Hosts | Gehostet auf::Hostet | Cloud-Hosts | AWS/Azure-Rechenzentren |
| AWS/Azure-Rechenzentren – Instanzen der virtuellen Maschine | Gehostet auf::Hostet | Instanzen der virtuellen Maschine | AWS/Azure-Rechenzentren |
| Cloud-Hosts: VM-Instanzen | Wird ausgeführt auf::Wird ausgeführt | Instanzen der virtuellen Maschine | Cloud-Hosts |
| Computer - VM-Instanzen | Virtualisiert von::Virtualisiert | Computer | Instanzen der virtuellen Maschine |
Beispielnutzlast für Computer und Installationen für dedizierte VM (ähnlich für AWS und Azure)
In dieser Beispielnutzlast wird ein dedizierter Computerdatensatz übergeben. Dieser Computerdatensatz verfügt über ein zugehöriges Array, das alle Softwareinstallationen enthält. Eine VM-Instanz entspricht dem Computerdatensatz. Der Cloud-Host ist der dedizierte Host, auf dem sich der virtuelle Computer befindet, und das Rechenzentrum AWS muss im Cloud-Servicekonto erstellt werden. Wenn Sie über mehrere dedizierte virtuelle Maschinen verfügen, können Sie für jede dedizierte virtuelle Maschine eine REST API senden. Wenn Sie beispielsweise 50 dedizierte VMs haben, müssen Sie 50 REST API-Aufrufe mit jeweils derselben Nutzlast senden. Alle Softwareinstallationen auf einer dedizierten VM können in einer einzigen Nutzlast im zugehörigen Array gesendet werden.
var payload = {
'items': [{
'className': 'cmdb_ci_computer',
'values': {
'name': 'Comp - Dedicated AWS - 1',
'cpu_count': 1,
'cpu_core_count': 4,
'cpu_core_thread': 1,
'virtual': true
},
'related': [{
'className': 'cmdb_sam_sw_install',
'values': {
'publisher': 'Microsoft',
'display_name': 'SQL Server',
'version': '2017',
'cloud_license_type': 'BYOL',
'cloud_license_type_source': 'third_party_integration'
}
}]
}, {
'className': 'cmdb_ci_vm_instance',
'values': {
'object_id': 'sample_object_id_aws_vm_dedicated',
'name': 'VM Dedicated AWS - 1',
}
}, {
'className': 'cmdb_ci_cloud_host',
'values': {
'object_id': 'sample_object_id_aws_host',
'name': 'AWS Dedicated Host - 1',
'cpu_core_count': 32
}
}, {
'className': 'cmdb_ci_aws_datacenter',
'values': {
'object_id': 'sample_object_id_aws_dc',
'name': 'AWS DataCenter - 1'
}
}, {
'className': 'cmdb_ci_cloud_service_account',
'values': {
'account_id': 'sample_account_id_aws_service_account',
'name': 'Cloud Service Account AWS - 1'
}
}],
'relations': [{
'type': 'Virtualized by::Virtualizes',
'parent': 0,
'child': 1
}, {
'type': 'Runs on::Runs',
'parent': 1,
'child': 2
},
{
'type': 'Hosted on::Hosts',
'parent': 2,
'child': 3
}, {
'type': 'Hosted on::Hosts',
'parent': 3,
'child': 4
}
]
}
var jsonUntil = new JSON();
var input = jsonUntil.encode(payload);
gs.info("Input: " + input.toString());
var options = {
"partial_payloads": false,
"deduplicate_payloads": true
};
var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCIEnhanced('ServiceNow', input, options);
gs.print("Output:" + output);