BYOL のサンプルペイロード
BYOL ライセンスモデルによって収集されたディスカバリーデータを ServiceNow インスタンスのソフトウェアインストール [cmdb_sam_sw_install] テーブルに入力するサンプルペイロード。
BYOL がサードパーティの検出ソースとしてソフトウェア資産接続と連携するには、特定のエンティティを設定する必要があります。これらのエンティティ間の関係は、BYOL がソフトウェア資産接続でスムーズに機能するために重要です。たとえば、クラウドホストの入力に必要な一部の値は、 AWS と Azureで異なります。オブジェクト ID とホストの名前は AWS と Azure の両方で必要ですが、 AWSの場合は CPU コア数が必要であり、 Azureの場合はホストタイプの値が必要です。エンティティとその関係の詳細については、「 BYOL のエンティティ と BYOL のエンティティ間の関係」を参照してください。
この例では、クラウドサービスアカウントが最上位のエンティティです。[BYOL のエンティティ] テーブルにリストされている他のすべてのエンティティは、クラウドサービスアカウントの依存エンティティです。エンティティが依存エンティティとしてマークされている場合は、親エンティティとそのエンティティとその親の関係を同じペイロードでメンションする必要があります。たとえば、クラウドサービスアカウントに AWS データセンターを作成する場合は、クラウドサービスアカウントがインスタンスに既に存在する場合でも、同じペイロードにクラウドサービスアカウントエンティティを含める必要があります。同様に、ソフトウェア インストールを作成するときは、ソフトウェア インストールのすべての依存エンティティを階層全体ですべて同じペイロードに含める必要があります。
BYOL のエンティティ
| エンティティ | 必須項目 |
|---|---|
| クラウドサービスアカウント [cmdb_ci_cloud_service_account] | account_id:一意の識別子 |
| AWS データセンター [cmdb_ci_aws_datacenter] | object_id:一意の識別子 |
| Azure データセンター [cmdb_ci_azure_datacenter] | object_id:一意の識別子 |
| クラウドホスト [cmdb_ci_cloud_host] 注: 共有 VM には必要ありません。 |
|
| 仮想マシンインスタンス [cmdb_ci_vm_instance] | object_id:一意の識別子 |
| コンピューター [cmdb_ci_computer] |
|
ソフトウェアインストール [cmdb_sam_sw_install] 注: ソフトウェアインストール [cmdb_sam_sw_install] は、コンピューター [cmdb_ci_computer] の関連エントリです。 |
|
BYOL のエンティティ間の関係
| エンティティ関係 | タイプ | 親 | 子 |
|---|---|---|---|
| AWS/Azure データセンター – クラウドサービスアカウント | Hosted on::Hosts | AWS/Azure データセンター | クラウドサービスアカウント |
| AWS/Azure データセンター – クラウドホスト | Hosted on::Hosts | クラウドホスト | AWS/Azure データセンター |
| AWS/Azure データセンター – 仮想マシンインスタンス | Hosted on::Hosts | 仮想マシンインスタンス | AWS/Azure データセンター |
| クラウドホスト:仮想マシンインスタンス | Runs on::Runs | 仮想マシンインスタンス | クラウドホスト |
| コンピューター - 仮想マシンインスタンス | Virtualized by::Virtualizes | コンピュータ | 仮想マシンインスタンス |
専用 VM のコンピューターとインストールのサンプルペイロード ( AWS と Azure で同様)
このサンプル ペイロードでは、専用のコンピューター レコードが渡されています。このコンピューターレコードには、すべてのソフトウェアインストールを含む関連アレイがあります。VM インスタンスはコンピューターレコードに対応します。クラウドホストは、仮想マシンが常駐し、クラウドサービスアカウントで AWS データセンターが作成される専用ホストです。複数の専用仮想マシンがある場合は、専用仮想マシンごとに 1 つの REST API を送信できます。たとえば、50 個の専用 VM がある場合は、それぞれが同じペイロードを持つ 50 個の REST API 呼び出しを送信する必要があります。専用 VM 上のすべてのソフトウェアインストールは、関連するアレイ内の単一のペイロードで送信できます。
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);