Carga de amostra para BYOL
Uma carga de amostra que preenche a tabela Instalação de software [cmdb_sam_sw_install] na instância ServiceNow com dados de descoberta coletados pelo modelo de licenciamento BYOL.
Certas entidades precisam ser preenchidas para que o BYOL funcione com a conexão de ativos de software como uma origem de descoberta de terceiros. O relacionamento entre essas entidades é crucial para que o BYOL funcione sem problemas com as conexões de ativos de software. Por exemplo, alguns valores necessários para preencher Hosts de Nuvem são diferentes para AWS e Azure. Embora o ID do objeto e o nome do host sejam necessários para AWS e Azure, para AWS, a contagem de núcleos de CPU é necessária e para Azure, o valor do tipo de host é necessário. Para obter detalhes sobre entidades e seus relacionamentos, consulte Entidades para BYOL e Relacionamentos entre as entidades para BYOL.
Neste exemplo, a conta de serviço em nuvem é a entidade mais elevada. Todas as outras entidades listadas na tabela Entidades para BYOL são entidades dependentes da conta de serviço em nuvem. Se uma entidade for marcada como dependente, a entidade primária e o relacionamento entre essa entidade e sua primária precisarão ser mencionados na mesma carga. Por exemplo, se você quiser criar um datacenter AWS na conta de serviço em nuvem, será necessário incluir a entidade de conta de serviço em nuvem na mesma carga; mesmo que a conta de serviço em nuvem já exista em sua instância. Da mesma forma, ao criar instalações de software, você precisa incluir todas as entidades dependentes para instalações de software em toda a hierarquia na mesma carga.
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 a Computadores [cmdb_ci_computer] |
|
Relacionamentos entre as entidades para BYOL
| Relacionamentos da entidade | Tipo | Primária | Secundário(a) |
|---|---|---|---|
| Datacenters do AWS/Azure – Conta de serviço em nuvem | Hosted on::Hosts | Datacenters do AWS/Azure | Conta de serviços em nuvem |
| Datacenters do AWS/Azure – Hosts de nuvem | Hosted on::Hosts | Hosts de nuvem | Datacenters do AWS/Azure |
| Datacenters AWS/Azure – Instâncias de máquina virtual | Hosted on::Hosts | Instâncias de Máquinas Virtuais | Datacenters do 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 AWS e Azure)
Nesta carga de amostra, um registro de computador dedicado está sendo passado. 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 de nuvem é o host dedicado no qual a máquina virtual reside e o datacenter AWS deve ser criado na Conta de Serviço em 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 na matriz relacionada.
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);