Beispielnutzlast für BYOL
Eine Beispielnutzlast, die die Tabelle „Softwareinstallation [cmdb_sam_sw_install]“ in ausfüllt ServiceNowInstanz mit Discovery-Daten, 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 arbeiten kann. Die Beziehung zwischen diesen Entitäten ist entscheidend, damit BYOL reibungslos mit Software-Asset-Verbindungen funktioniert. Beispielsweise unterscheiden sich einige Werte, die zum Ausfüllen von Cloud-Hosts erforderlich sind, für AWSUnd Azure. Obwohl die Objekt-ID und der Name des Hosts für beide erforderlich sind AWSUnd Azure, Für AWS, Die Anzahl der CPU-Kerne ist für erforderlich Azure, Der Hosttypwert ist erforderlich. Details zu Entitäten und ihren Beziehungen finden Sie unter Entitäten für BYOLUnd Beziehungen zwischen den Entitäten für BYOL.
In diesem Beispiel ist der Cloud-Service-Account die oberste Entität. Alle anderen Entitäten, die in der Tabelle „Entitäten für BYOL“ aufgeführt sind, sind abhängige Entitäten des Cloud-Service-Accounts. 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 ihrem übergeordneten Element in derselben Nutzlast erwähnt werden. Beispiel: Wenn Sie einen erstellen möchten AWSRechenzentrum im Cloud-Service-Account müssen Sie die Cloud-Service-Account-Entität in dieselbe Nutzlast aufnehmen, auch wenn Cloud-Service-Account bereits in Ihrer Instanz vorhanden ist. Gleichermaßen müssen Sie beim Erstellen von Softwareinstallationen alle abhängigen Entitäten für Softwareinstallationen über die gesamte Hierarchie in derselben Nutzlast einschließen.
Entitäten für BYOL
| Entitäten | Pflichtfelder |
|---|---|
| Cloud-Serviceaccount [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: Nicht erforderlich für freigegebene VMs. |
|
| 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-Service-Account | Gehostet auf::Hosts | AWS/Azure-Rechenzentren | Cloud-Serviceaccount |
| AWS/Azure-Rechenzentren: Cloud-Hosts | Gehostet auf::Hosts | Cloud-Hosts | AWS/Azure-Rechenzentren |
| AWS/Azure-Rechenzentren: VM-Instanzen | Gehostet auf::Hosts | Instanzen der virtuellen Maschine | AWS/Azure-Rechenzentren |
| Cloud-Hosts: Vm-Instanzen | Wird ausgeführt am::Run | Instanzen der virtuellen Maschine | Cloud-Hosts |
| Computer: Instanzen Der Virtuellen Maschine | Virtualisiert von::virtualisiert | Computer | Instanzen der virtuellen Maschine |
Beispielnutzlast für Computer und Installationen für dedizierte VM (ähnlich für AWSUnd Azure)
In dieser Beispielnutzlast wird ein dedizierter Computerdatensatz übergeben. Dieser Computerdatensatz hat ein zugehöriges Array, das alle Softwareinstallationen enthält. Eine VM-Instanz entspricht dem Computerdatensatz. Cloud-Host ist der dedizierte Host, auf dem sich die virtuelle Maschine befindet, und der AWSDas Rechenzentrum muss im Cloud-Service-Account erstellt werden. Wenn Sie über mehrere dedizierte virtuelle Computer verfügen, können Sie eine REST-API für jede dedizierte virtuelle Maschine senden. Wenn Sie beispielsweise 50 dedizierte VMs haben, müssen Sie 50 REST-API-Aufrufe senden, die jeweils dieselbe Nutzlast haben. Alle Softwareinstallationen auf einer dedizierten VM können in einer einzelnen 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);