Beispielnutzlast für BYOL
Eine Beispielnutzlast, die die Tabelle „Softwareinstallation“ [cmdb_sam_sw_install] in der Instanz ServiceNow mit Discovery-Daten füllt, die vom BYOL-Lizenzierungsmodell erfasst wurden.
Bestimmte Entitäten müssen ausgefüllt werden, damit BYOL mit der Software-Asset-Verbindung als Discovery-Quelle einer Drittpartei 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 erforderlich, und für Azureist der Wert des Hosttyps erforderlich. Weitere Informationen 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 „Cloud-Servicekonto“ 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 AWS -Rechenzentrum für ein Cloud-Servicekonto erstellen möchten, müssen Sie die Entität „Cloud-Servicekonto“ in dieselbe Nutzlast aufnehmen. , auch wenn in Ihrer Instanz bereits ein Cloud-Servicekonto 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 einbeziehen.
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. |
|
| VM-Instanzen [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-Servicekonto | Gehostet auf::Hostet | AWS/Azure-Rechenzentren | Cloud-Servicekonto |
| AWS/Azure-Rechenzentren – Cloud-Hosts | Gehostet auf::Hostet | Cloud-Hosts | AWS/Azure-Rechenzentren |
| AWS/Azure-Rechenzentren – VM-Instanzen | 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. Cloud-Host ist der dedizierte Host, auf dem sich der virtuelle Computer befindet, und das Rechenzentrum AWS soll im Cloud-Servicekonto erstellt werden. Wenn Sie mehrere dedizierte virtuelle Computer haben, können Sie eine REST-API für jeden dedizierten virtuellen Computer 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);