Carga de amostra para BYOL
Uma carga de amostra que preenche a tabela de Instalação de software [cmdb_sam_sw_install] no ServiceNowInstância com dados de descoberta coletados pelo modelo de licenciamento BYOL.
Determinadas entidades precisam ser preenchidas para que o BYOL trabalhe com a conexão de ativos de software como uma fonte de descoberta de terceiros. O relacionamento entre essas entidades é crucial para que o BYOL funcione sem problemas com conexões de ativos de software. Por exemplo, alguns valores necessários para preencher hosts de nuvem são diferentes para AWSe. Azure. Embora o ID do objeto e o nome do host sejam necessários para ambos AWSe. Azure, para AWS, A contagem de núcleos da CPU é necessária e para Azure, o valor do tipo de host é obrigatório. Para obter detalhes sobre entidades e seus relacionamentos, consulte Entidades para BYOLe. Relações entre as entidades para BYOL.
Neste exemplo, a conta de serviço de nuvem é a entidade superior. Todas as outras entidades listadas na tabela Entidades para BYOL são entidades dependentes da conta de serviço de nuvem. Se uma entidade for marcada como uma entidade dependente, a entidade primária e o relacionamento entre essa entidade e seu primário precisarão ser mencionados na mesma carga. Por exemplo, se você quiser criar um AWSNa conta de serviço de nuvem, você precisa incluir a entidade da conta de serviço de nuvem na mesma carga, mesmo que a conta de serviço de nuvem já exista em sua instância. Da mesma forma, ao criar instalações de software, você precisa incluir todas as entidades dependentes de instalações de software na mesma hierarquia.
Entidades para BYOL
| Entidades | Campos necessários |
|---|---|
| Conta de serviço em nuvem [cmdb_ci_cloud_service_account] | Account_id - Identificador exclusivo |
| AWS Datacenters [cmdb_ci_aws_datacenter] | Object_id - Identificador exclusivo |
| Azure Datacenters [cmdb_ci_azure_datacenter] | Object_id - Identificador exclusivo |
| Hosts de nuvem [cmdb_ci_cloud_host] Nota: Não é necessário para VMs compartilhadas. |
|
| Instâncias de máquina virtual [cmdb_ci_vm_instance] | Object_id - Identificador exclusivo |
| Computadores [cmdb_ci_computer] |
|
Instalações de software [cmdb_sam_sw_install] Nota: Instalações de software [cmdb_sam_sw_install] é uma entrada relacionada para computadores [cmdb_ci_computer] |
|
Relações entre as entidades para BYOL
| Relacionamentos da entidade | Tipo | Primário | Secundário(a) |
|---|---|---|---|
| Datacenters AWS/Azure – Conta de serviço de nuvem | Hosted on::Hosts | Datacenters AWS/Azure | Conta de serviço em nuvem |
| Datacenters AWS/Azure – Hosts em nuvem | Hosted on::Hosts | Hosts de nuvem | Datacenters AWS/Azure |
| Datacenters AWS/Azure – Instâncias de máquinas virtuais | Hosted on::Hosts | Instâncias de Máquinas Virtuais | Datacenters AWS/Azure |
| Hosts de nuvem - Instâncias de máquina virtual | Runs on::Runs | Instâncias de Máquinas Virtuais | Hosts de nuvem |
| Computadores - Instâncias de máquina virtual | Virtualized by::Virtualizes | Computadores | Instâncias de Máquinas Virtuais |
Carga de amostra para computador e instalações para VM dedicada (semelhante para AWSe. Azure)
Nesta carga de amostra, um registro de computador dedicado está sendo aprovado. Este registro de computador tem uma matriz relacionada que contém todas as instalações de software. Uma instância de VM corresponde ao registro do computador. O host em nuvem é o host dedicado no qual a máquina virtual reside e o. AWSO datacenter deve ser criado na conta de serviço de nuvem. Se você tiver várias máquinas virtuais dedicadas, poderá enviar uma REST API para cada máquina virtual dedicada. Por exemplo, se você tiver 50 VMs dedicadas, precisará enviar 50 chamadas de REST API, cada uma com a mesma carga. Todas as instalações de software em uma VM dedicada podem ser enviadas em uma única carga no array relacionado.
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);