---
sourceDocument: Xanadu IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/it-operations-management

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Xanadu IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Descoberta do IBM Cloud Platform

# Descoberta do IBM Cloud Platform {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 26 min. de leitura

A aplicação \[ ServiceNow Descoberta encontra componentes Plataforma IBM Cloud (API SoftLayer v3 e v3.1 e API BlueMix v2) usando os padrões Plataforma IBM Cloud. A descoberta de alguns desses recursos requer a atualização da aplicação Padrões de descoberta e mapeamento de serviços a partir da ServiceNow Store.
Você pode usar os padrões no Now Platform usando London Patch 7, Madrid Patch 2 ou versões posteriores.

## Solicitar aplicativos na Store {#ibm-cloud-platform-discovery__section_gvb_cql_rlb}

Acesse o site [ServiceNow Store](https://store.servicenow.com/sn_appstore_store.do#!/store/home) para ver todos os aplicativos disponíveis e obter informações sobre como enviar solicitações para a loja. Para obter informações sobre notas de versão cumulativa para todos os aplicativos liberados, consulte as [ServiceNow Store notas de versão do histórico de versão](https://www.servicenow.com/docs/bundle/store-release-notes/page/release-notes/store/sn-store-release-notes.html).{#ibm-cloud-platform-discovery__inline-send-to-store}

## Pré-requisitos {#ibm-cloud-platform-discovery__section_xrh_4wz_ghb}

MID Server
:   Use um MID Server dedicado para descoberta na nuvem. O MID Server deve ter 16 núcleos, 8 GB com alocação de memória de modelo de memória Java (JVM) de 4 GB.
:   Implante e conecte o MID Server dedicado com acesso à Internet.

Credenciais
:   Os recursos de nuvem estão em uma nuvem da IBM. Crie as credenciais da IBM para acessar sua conta da IBM.  
    1. Navegar até DescobertaCredenciais.
    2. Clique em Nova.
    3. Clique em Credenciais da IBM e preencha o formulário:  
       {#ibm-cloud-platform-discovery__table_gxd_ljv_2hb__entry__2}

       | Campo | Descrição |
       |-|-|
       | Nome | Nome da credencial. Um exemplo é <kbd class="ph userinput">ibm-cred</kbd>. |
       | Ordem | A ordem na qual a plataforma testa esta credencial ao tentar fazer login nos dispositivos. Um número menor indica que a credencial aparece na parte superior da lista. Estabeleça a ordem das credenciais ao usar um grande número de credenciais ou quando a segurança bloquear usuários após três tentativas de login com falha. Se todas as credenciais tiverem o mesmo número de ordem, ou número nenhum, a instância vai tentar usar as credenciais em uma ordem aleatória. O valor padrão é 100. |
       | Usuário de API Softlayer | Nome de usuário da API SoftLayer. Use o nome de usuário da API do SoftLayer definido no console do SoftLayer. |
       | Chave de API Softlayer | Chave para a API SoftLayer. Use a chave de API do SoftLayer definida no console do SoftLayer. |
       | Chave de API Bluemix | Chave para a API do BlueMix. Use a chave de API do BlueMix definida no console do IBM Cloud. |
       [Tabela 1. Formulário de Credenciais]

       {#ibm-cloud-platform-discovery__table_gxd_ljv_2hb}
    4. Clique em Enviar.
    {#ibm-cloud-platform-discovery__ol_exd_ljv_2hb}

Criar uma conta de serviço em nuvem da IBM
: Use as credenciais definidas no procedimento anterior para criar a conta de serviço em nuvem da IBM.  
1. Navegar até Cloud Provisioning and GovernanceContas de Serviço.
2. Clique em Nova.
3. No formulário, preencha os campos:  
   {#ibm-cloud-platform-discovery__table_l3l_fyx_hhb__entry__2}

   | Campo | Descrição |
   |-|-|
   | Nome | Nome da credencial. Um exemplo é <kbd class="ph userinput">ibm-snow</kbd> |
   | ID da Conta | Nome do ID da conta da IBM. Insira o ID da conta da IBM. |
   | Credenciais do Descoberta | Credenciais do Descoberta definidas anteriormente. |
   | Tipo de datacenter | Tipo de datacenter. Por exemplo, <kbd class="ph userinput">IBM Datacenter [cmdb_ci_ibm_datacenter]</kbd> |
   [Tabela 2. Formulário Conta de serviço em nuvem]

   {#ibm-cloud-platform-discovery__table_l3l_fyx_hhb}
4. Clique em Enviar.
{#ibm-cloud-platform-discovery__ol_k3l_fyx_hhb}

Criar uma Descoberta programação sem servidor
:   Configure um Descobertasem servidor.

    1. No Now Platform, navegue até DescobertaCronogramas de descoberta.
    2. Clique em Nova.
    3. No formulário, preencha os campos:  
       {#ibm-cloud-platform-discovery__table_i3d_bzy_fhb__entry__2}

       | Campo | Descrição |
       |-|-|
       | Nome | Nome para esta programação Descoberta. Por exemplo, <kbd class="ph userinput">Padrão sem servidor</kbd> |
       | Descoberta | Tipo de descoberta. Selecionar sem servidor |
       | MID Server | Nome do MID Server. Por exemplo, <kbd class="ph userinput">Discovery_Server</kbd> |
       | Ativo | Opção para habilitar esta programação para Descoberta. Marque esta caixa de seleção para habilitar Descoberta. |
       | Executar | Especifica a frequência de execução da programação Descoberta. |
       [Tabela 3. Formulário Programação do Descoberta]

       {#ibm-cloud-platform-discovery__table_i3d_bzy_fhb}
    4. Clique com o botão direito do mouse no formulário Programação do Descoberta e selecione Salvar.

    5. Clique na guia Padrões de execução sem servidor.
    6. Clique em Nova.
    7. No formulário, preencha os campos:  
       {#ibm-cloud-platform-discovery__table_k3d_bzy_fhb__entry__2}

       | Campo | Descrição |
       |-|-|
       | Nome | Nome do Padrão de execução sem servidor. Por exemplo, <kbd class="ph userinput">IBM1</kbd> |
       | Padrão | Nome do padrão que você deseja executar. Se você quiser executar vários padrões, crie vários registros. |
       | Host de Proxy | Nome de domínio totalmente qualificado da máquina na qual o servidor proxy está sendo instalado. Especifique Global. |
       | Ativo | Opção para habilitar esta programação para Descoberta. Marque esta caixa de seleção para habilitar Descoberta. |
       [Tabela 4. Formulário Padrão de execução sem servidor]

       {#ibm-cloud-platform-discovery__table_k3d_bzy_fhb}
    8. Configure os parâmetros necessários para o padrão Plataforma IBM Cloud da seguinte forma:  
       {#ibm-cloud-platform-discovery__table_l3d_bzy_fhb__entry__2}

       | Parâmetro | Descrição |
       |-|-|
       | cloud_cred_id | O sys_id das credenciais da IBM especificadas na configuração. |
       | cloud_account_id | O ID da conta da IBM. |
       | cloud_datacenter_type | cmdb_ci_ibm_datacenter |
       [Tabela 5. Parâmetros do inicializador de padrão do Descoberta]

       {#ibm-cloud-platform-discovery__table_l3d_bzy_fhb}
    9. Atualize.
    10. Para iniciar Descoberta, navegue até a definição Sem servidor Descoberta e clique em Descobrir agora.
    {#ibm-cloud-platform-discovery__ol_txj_x31_hhb}

Fluxo da IBM - Descoberta horizontal
:
    * Para executar uma descoberta usando uma programação sem servidor, os padrões do IBM Cloud Platform selecionados são executados e descobrem recursos do IBM Cloud Platform.
    * Para executar uma descoberta usando uma conta de serviço, uma programação de descoberta completa do IBM Cloud Platform é executada, descobrindo todos os recursos compatíveis do IBM Cloud Platform.
    {#ibm-cloud-platform-discovery__ul_hfd_mzx_khb}

Operação personalizada em nuvem
:   REST na nuvem - Adicionar resposta ao contexto  
    Operação para consultas REST na nuvem que oferece suporte a respostas em grande escala e melhor uso de memória.

    * Especifique todos os campos com os mesmos valores da operação personalizada Consulta REST na nuvem, exceto para especificar a tabela para a resposta, que é definida no campo Nome da variável de resposta.

    * Defina Definir análise como Nenhum.
    {#ibm-cloud-platform-discovery__ul_mdn_wj5_lhb}

:   Métodos para recuperar dados da conta da IBM

    1. Navegar até Designer de padrõesOperações Personalizadas.

    2. Clique em REST na nuvem - adicionar resposta ao contexto.

    {#ibm-cloud-platform-discovery__ol_nlw_wp5_lhb}

    Método: Obter chamada

    URLs de API usados para recuperar os dados:  
    * Balanceador de carga https://api.softlayer.com/rest\<api_version\>/SoftLayer_Network_LBaaS_LoadBalancer/getAllObjects?objectMask=mask\[listeners\[defaultPool\],members,healthMonitors\]
    * Rede https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getNetworkVlans?objectMask=mask\[primaryRouter.datacenter,name,id,vlanNumber,networkSpace\]
    * Rede https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getSubnets?objectMask=mask\[datacenter\]
    * Rede https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getSecurityGroups?objectMask=mask\[rules\]
    * Organizações e espaços https://api.\<region\>.bluemix.net/v2/organizations
    * https://api.\<region\>.bluemix.net/v2/spaces
    * Chave SSH https://api.softlayer.com/rest/v3/SoftLayer_Account/SoftLayer_Account/getSshKeys
    * Armazenamento https://api.softlayer.com/rest/\<api_version\>/SoftLayer_Account/getNetworkStorage
    * Servidor virtual https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getSecurityGroups
    * http://api.softlayer.com/rest/v3.1/SoftLayer_Account/getSecurityGroups?objectMask=mask\[id,name,networkComponentBindings\[networkComponentId,networkComponent\[networkId,guest\[fullyQualifiedDomainName,hostname,id,datacenter\[name\]\]\]\]\]
    * https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getVirtualGuests?objectMask=mask\[hostname,domain,powerState,fullyQualifiedDomainName,notes,id,statusId,placementGroupId,sshKeys\[label,key,id,fingerprint,createDate,modifyDate,notes\],primaryBackendIpAddress,primaryIpAddress,networkVlans\[id,name,note,vlanNumber\],blockDeviceCount,blockDevices\[device,diskImageId,mountType,guestId,id,mountMode\],allowedNetworkStorage\[id,fileNetworkMountAddress,iscsiTargetIpAddresses,nasType,username,serviceResourceBackendIpAddress\],maxCpu,maxMemory,datacenter,networkComponentCount,regionalGroup,datacenter,location,operatingSystem\[id,softwareDescription\[id,name,longDescription,manufacturer,referenceCode,version\]\],networkComponents\[guestId,id,port,name,primarySubnet\[networkIdentifier,id,networkVlan\[id\]\],status,macAddress,primaryIpAddress\]\]
    {#ibm-cloud-platform-discovery__ul_gvs_kv3_hkb}

Funções EVAL

:   Use a função EVAL a seguir para transformar a resposta da API do balanceador de carga em um formato JSON completo. A resposta padrão é formatada como "\[\<resource objects\> \]".

        var cloud_lb_response = ${cloud_lb_response};
        for (var i = 0; i < cloud_lb_response.size(); i++){
              cloud_lb_response.set(i, '{"result":[' + cloud_lb_response.get(i) + ']}');
        }
        CTX.setAttribute("cloud_lb_response", cloud_lb_response;

    Use a função EVAL a seguir para transformar a resposta da API de rede em um formato JSON completo. A resposta padrão é formatada como "\[\<resource objects\> \]".  

        var network_response = ${network_response};
        for (var i = 0; i < network_response.size(); i++){
              network_response.set(i, '{"result":[' + network_response.get(i) + ']}');
        }
        CTX.setAttribute("network_response", network_response);

    Use a função EVAL a seguir para obter a região da IBM da zona de disponibilidade do LB (datacenter). A mesma função é usada para outros recursos dentro do padrão.  

        var res = "";
        res = IbmCloudDcToRegion.convertDctoRegion(${cloud_lb[].cloud_lb_az_short_name});

    Use a função EVAL a seguir para selecionar o algoritmo necessário no padrão.  

        var rtrn
        var lb_algorithm = ${cloud_lb_pools[].lb_algorithm}.toString();
        switch (lb_algorithm){  
           case "ROUNDROBIN":
              lb_algorithm = "round-robin";
              break;    
           case "WEIGHTED_RR":
              lb_algorithm = "round-robin";
              break;          
           case "LEASTCONNECTION":
              lb_algorithm = "least-connections";
              break;     
           default: break;

    Use a função EVAL a seguir para analisar a região exclusiva da conta que hospeda as organizações e os espaços correspondentes.  

        var tableWithoutDuplicates = '';
        tableWithoutDuplicates =  DuplicateRemover.removeDuplicates(${account_region},["region_name"]);
        CTX.setAttribute("account_region_unique",  tableWithoutDuplicates);

    Use a função EVAL a seguir para obter informações de todas as organizações atribuídas à conta de nuvem da IBM, em que a iteração para obter a região exclusiva é realizada.  

        var cloudcall = new CloudRestAPIClient();
        var resourceTable = ${account_region_unique[*].region_name};
        var tableSize = resourceTable.size();                                     
        var tmp_response = new Packages.java.util.ArrayList();
        var all_organizations_response = new Packages.java.util.ArrayList();
        for (var i = 0; i < tableSize ; i++){
           if  (!resourceTable.get(i)) continue;
           var url = "https://api."+resourceTable.get(i)+".bluemix.net/v2/organizations";
           tmp_response = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
           
           for (var j = 0; j < tmp_response.size(); j++){
              all_organizations_response.add('{"result":[' + tmp_response.get(j) + ']}');
           }
        }
        CTX.setAttribute("all_organizations_response", all_organizations_response);

    Use a função EVAL a seguir para obter informações de todos os espaços atribuídos à conta de nuvem da IBM, em que a iteração para obter a região exclusiva é realizada.  

        var rtrn = '';
        var cloudcall = new CloudRestAPIClient();
        var resultList = new Packages.java.util.ArrayList();
        var rest = '';
        var resourceTable = ${account_region_unique[*].region_name};
        var result = new Packages.java.util.ArrayList();
        var all_organizations_response = ${all_organizations_response}
        for (var i = 0; i < resourceTable.size() ; i++){
           var url = "https://api."+resourceTable.get(i)+".bluemix.net/v2/spaces";
           result = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
           for (var z = 0; z < all_organizations_response.size(); z++){
              var jsonObj = JSON.parse(result.get(z));
              ms.log("length "+jsonObj.resources.length);
        for(var j=0;j<jsonObj.resources.length;j++){
                 var guid = jsonObj.resources[j].metadata.guid;
                 var url = jsonObj.resources[j].metadata.url;
                 var name = jsonObj.resources[j].entity.name;
                 var organization_guid = jsonObj.resources[j].entity.organization_guid;
                 var allow_ssh = jsonObj.resources[j].entity.allow_ssh ? "true" : "false";
                 var row = new Packages.java.util.HashMap();
         Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug(">>>>>>>>>>>>>||||||||||||>>>>>> region alias=" + resourceTable.get(i)); 
                 Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug(">>>>>>>>>>>>>||||||||||||>>>>>> region full name=" + IbmCloudDcToRegion.regionNamebyAlias(resourceTable.get(i))); 
                 row.put("region", IbmCloudDcToRegion.regionNamebyAlias(resourceTable.get(i)));
                 row.put("space_guid",guid);
                 row.put("space_url",url);
                 row.put("space_name",name);
                 row.put("space_organization_guid",organization_guid);
                 row.put("space_allow_ssh",allow_ssh);
                 row.put("rest", rest);
                 resultList.add(row);
              }
           }
           CTX.setAttribute('spaces_table', resultList);
        }
             
    Use a seguinte função EVAL para filtrar todos os espaços por região exclusiva.  

        var space_region = ${spaces_table[].region};

        Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug("filtering space according to LDC. space_region=" + space_region);
        var regions = ${cmdb_ci_ibm_datacenter[*].region};
        Packages.com.snc.sw.log.DiscoLog.getLogger("IBM Cloud Space and Org").debug("input regions list=" + regions.toString());

        var rtrn = "false";
        if(regions.contains(space_region)) {
            rtrn = "true";
        }
        rtrn;

    Use a função EVAL a seguir para filtrar todos os espaços por descoberta de armazenamento.  

        var storage_response = ${storage_response};
        for (var i = 0; i < storage_response.size(); i++){
              storage_response.set(i, '{"result":[' + storage_response.get(i) + ']}');
        }
        CTX.setAttribute("storage_response", storage_response);

    Use a seguinte função EVAL para transformar a resposta da API no formato JSON completo, já que a resposta inalterada é formatada como "\[\<resource objects\> \]".  

        var ssh_key = ${ssh_key_json};
        for(var i = 0; i < ssh_key.size(); i++){
           ssh_key.set(i,'{"result\" : ' + ssh_key.get(i) + "}");
        }
        CTX.setAttribute("ssh_key_json", ssh_key);

    Use a função EVAL a seguir para preencher a zona de disponibilidade na tabela de volume de armazenamento.  

        var rtrn;
        var resource_group = ${network_storage[].resource_name};
        var regex = /.*-(\w{3}\d{2}).*/;
        var az_name = regex.exec(resource_group);
        if (az_name) {
           rtrn = az_name[1];
        } else {
           rtrn;
        }

    Use a função EVAL a seguir para preencher a região na tabela de volume de armazenamento.  

        var res = "";
        res = IbmCloudDcToRegion.convertDctoRegion(${network_storage[].availability_zone});

    Use a função EVAL a seguir para transformar o tamanho dos armazenamentos de bytes de gigabytes.  

        var rtrn = '';

        var size = ${network_storage[].size};

        rtrn = (parseInt(size) * 1073741824) + '';

    Use a função EVAL a seguir para transformar o tamanho dos armazenamentos de bytes de gigabytes.  

        var cloudcall = new CloudRestAPIClient();
        var resourceTable = ${network_storage[*].storage_object_id};
        var tableSize = resourceTable.size();
        var allResources = new Packages.java.util.ArrayList();
        var response = new Packages.java.util.ArrayList();
        for (var i = 0; i < tableSize ; i++){
           if  (!resourceTable.get(i)) continue;
           var url = "https://api.softlayer.com/rest/"+${api_version}+"/SoftLayer_Network_Storage/"+resourceTable.get(i)+"/getObject?objectMask=mask[snapshots]";
           // the commented out code is to call the "Cloud Rest Call" API
           
           allResources = cloudcall.arrayListExecute(${service_account}, null, url, null, 'GET', null, 'true', CTX);
           for (var j = 0; j < allResources.size(); j++){
              response.add('{"result":[' + allResources.get(j) + ']}');
           }
        }
        CTX.setAttribute("all_snapshots_response", response);

    Use o seguinte fechamento EVAL que transforma o JSON recebido da API em um formato com o qual o analisador JSON pode trabalhar. O JSON padrão é salvo em `$vm_json_array`, o novo JSON está em `$vm_json`.  

        var vm_json = new Packages.java.util.ArrayList();
        vm_json.addAll(${vm_json_array});

        for (var i = 0 ; i < vm_json.size(); i++){
              vm_json.set(i, '{\"result\":[' + vm_json.get(i) + ']}');
        }

        CTX.setAttribute("vm_json", vm_json); 

    Use o seguinte fechamento EVAL que retorna "on" se o status de energia estiver em execução. O valor "off" será retornado se o status de energia estiver desligado.  

        var power = ${cmdb_ci_vm_instance[].state};
        var rtrn = '';

        if (power == 'Running'){
           rtrn = "on";
        }
        else {
           rtrn = "off"
        } 

    Use o seguinte fechamento EVAL que retorna a região do IC, com base no nome da zona de disponibilidade fornecido.  

        var az = ${cmdb_ci_vm_instance[].avail_zone};
        var rtrn = '';
        rtrn = IbmCloudDcToRegion.convertDctoRegion(az);

    Use o seguinte fechamento EVAL que cria um HashMap de HashSets, conectando VMs com seus armazenamentos de rede. A seguinte chave é usada:

    * P = página
    * V = VM
    * N = armazenamento de rede
    {#ibm-cloud-platform-discovery__ul_vdf_j2v_lhb}  

        var rtrn = '';
        var vmJson = ${vm_json_array};
        var VMtoStorageHashMap = new Packages.java.util.HashMap();

        for (var p = 0 ; p < vmJson.size(); p++){
           var page = JSON.parse(vmJson.get(p));
           for (var now_V in page){
              if (page[v].allowedNetworkStorage.length > 0){
                 var vm_id = page[v].id + '';
                 var storageSet = new Packages.java.util.HashSet();
                 for (var n in page[v].allowedNetworkStorage){
                    storageSet.add(page[v].allowedNetworkStorage[n].id + '');
                 }
                 VMtoStorageHashMap.put(vm_id,storageSet);
              }
           }
        }
        CTX.setAttribute("VMStorageCache", VMtoStorageHashMap); 

    Use o seguinte fechamento EVAL para remover entradas duplicadas das tabelas.  

        var tableWithoutDuplicates = '';
        tableWithoutDuplicates = DuplicateRemover.removeDuplicates(${cmdb_ci_os_template},["object_id"]);
        CTX.setAttribute("cmdb_ci_os_template", tableWithoutDuplicates);

    Use o seguinte fechamento EVAL que cria uma lista de IDs de VM relacionados ao ID do grupo de segurança atual.  

        var rtrn = '';
        //get the Security Group ID of the current record in the table for comparison
        var current_table_id = ${security_groups[].sec_group_id};
        var current_table_id_string = current_table_id + '';

        // get the list of instance's ID that will be then added to Security Group table
        var needed_value_id_list = ${sec_group_network_components[*].vm_instance_id};
        //get the list of Security Group IDs in the Network Component table, which will then be compared one by one to the current record of the security_groups table
        var compare_id_list = ${sec_group_network_components[*].sec_group_id};

        var beforeReturn = '';
        var separator = '';
        for (var i = 0; i <  compare_id_list.size(); i++)   {
           
           if   (current_table_id_string == compare_id_list.get(i)){
              
              beforeReturn += separator + needed_value_id_list.get(i);
              separator = ',';
           }
        }
        rtrn = beforeReturn;

    Use o seguinte fechamento EVAL que cria um HashMap de HashSet entre grupos de segurança e as VMs que estão configuradas para usá-los.  

        rtrn = '';
        var secGroupTable = ${cmdb_ci_endpoint_comp_security};
        var secToVMHashSet = new Packages.java.util.HashMap();

        // this loop worst case O(N*M) M = security groups, N = VMs
        for(var i=0; i<secGroupTable.size(); i++){
           var securityTableId = secGroupTable.get(i).get('object_id');
           var vmListStr = secGroupTable.get(i).get('instance_list');
           var vmList = vmListStr.split(",");

           var vmSet = new Packages.java.util.HashSet();
           for (var j in vmList){
              vmSet.add(vmList[j]);
           }

           secToVMHashSet.put(securityTableId,vmSet);
        }
        CTX.setAttribute("securityVMCache",  secToVMHashSet);

    Use o seguinte fechamento EVAL que retorna "verdadeiro" se a VM atual estiver usando o ID do grupo de segurança atual.  

        var rtrn = '';
        var vm_id = ${cmdb_ci_vm_instance[].object_id};
        var vmHashSet = ${securityVMCache}.get(${cmdb_ci_endpoint_comp_security[].object_id});
        rtrn = vmHashSet.contains(vm_id);

    Use o seguinte fechamento EVAL que retorna "verdadeiro" se a VM atual estiver usando o volume de armazenamento atual.  

        var rtrn = '';
        var vm_id = ${cmdb_ci_vm_instance[].object_id};
        var vol_id = ${cmdb_ci_endpoint_iscsi[].object_id};
        var vmHashSet = ${VMStorageCache}.get(vm_id);
        if (vmHashSet){
           rtrn = vmHashSet.contains(vol_id);
        }
        else {
           rtrn = 'false'
        }

    Use a seguinte função EVAL para transformar a resposta da API no formato JSON completo, já que a resposta inalterada é formatada como "\[\<resource objects\> \]".

        var cloud_response = ${location_groups_response}
        for (var i = 0; i < cloud_response.size(); i++){
            cloud_response.set(I, '{"result":[' + cloud_response.get(i) + ']}');
        }
        CTX.setAttribute("location_groups_response", cloud_response);

    Analisa os grupos de locais exclusivos na tabela "location_groups_az" com base na coluna "lg_id" e cria uma nova tabela "location_groups_az_unique" que contém o resultado.

        var tableWithoutDuplicates= '';
        tableWithoutDuplicates = DuplicateRemover.removeDuplicates(${location_groups_az},["lg_id"]);
        CTX.setAttribute("location_groups_az_unique", tableWithoutDuplicates);

    Cria uma lista de zonas de disponibilidade por grupo do local, que é armazenada em uma nova coluna na tabela location_groups_az_unique. Os registros da lista são divididos por vírgulas propositalmente, para que relações exclusivas possam ser feitas em etapas consecutivas.

        var current_table_id= ${location_groups_az_unique[].lg_id};
        var current_table_id_string = current_table_id+ '';
        var needed_v alue_id_list = ${location_groups_az[*].lg_az_id};
        var compare_id_list= ${location_groups_az[*].lg_id};
        var beforeReturn= '';
        var separator = ',';
        for (var i= 0; i< compare_id_list.size(); i++)  {
            if (current_table_id_string == compare_id_list.get(i)){
            beforeReturn += separator + needed_v alue_id_list.get(i) + separator;
          }
        }
        rtrn = beforeReturn;

Ative os relacionamentos de IC relacionados à nuvem
:   Para incluir componentes descobertos em serviços de aplicativo, habilite relacionamentos de IC usados na descoberta baseada em tag por Mapeamento de serviços. Esses relacionamentos de IC estão disponíveis a partir da versão 1.0.68 do ServiceNow Store. Para obter as etapas operacionais, consulte [Configuração de descoberta baseada em marcador](https://servicenow-prod.fluidtopics.net/hyAp2BrVUIxDoCV6xuWRIA "Você pode ajustar a configuração padrão para controlar quais ICs o Mapeamento de serviços inclui nos serviços de aplicações durante o processo de descoberta baseada em marcador.").

## Dados coletados pelo Descoberta durante a descoberta horizontal {#ibm-cloud-platform-discovery__section_zdq_vwz_ghb}

Os dados são coletados usando estes padrões:

* Balanceador de Carga em Nuvem da IBM
* Grupos de localização do IBM Cloud
* Rede do IBM Cloud
* IBM Cloud Organizations and Spaces
* Grupos de recursos de nuvem da IBM
* Chave SSH do IBM Cloud
* Armazenamento em nuvem da IBM
* Servidor Virtual em Nuvem da IBM
{#ibm-cloud-platform-discovery__ul_pmq_bnt_3hb}  
Dados coletados para IBM componentes:

Recursos descobertos do IBM Cloud Load Balancer
:   {#ibm-cloud-platform-discovery__table_o21_dlv_2hb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_cloud_load_balancer ||
    | name | Nome do balanceador de carga. |
    | object_id | Identificador exclusivo do balanceador de carga. |
    | fqdn | Endereço do balanceador de carga (nome do host). |
    | dns_name | Nome do servidor de domínio do balanceador de carga. |
    | short_description | Descrição do balanceador de carga que você fornece para facilitar a identificação. |
    | operational_status | Status do balanceador de carga, um de: * ON-LINE * OFF-LINE {#ibm-cloud-platform-discovery__ul_kqp_xwv_jhb} |
    | local | Local do datacenter. |
    | state | Status de provisionamento do balanceador de carga. |
    | IC relacionado: cmdb_ci_lb_service ||
    | name | Nome criado do padrão, composto por: * nome do balanceador de carga * tipo de protocolo * ouvinte de tipo de recurso {#ibm-cloud-platform-discovery__ul_bwh_l5x_khb} |
    | object_id | Identificador exclusivo do balanceador de carga. |
    | port | Número da porta do ouvinte. |
    | front_end_port | Número da porta de protocolo do ouvinte. |
    | listener_protocol | Protocolo do ouvinte. Um dos seguintes protocolos: * TCP * HTTP * HTTPS {#ibm-cloud-platform-discovery__ul_c2c_5wt_3hb} |
    | operational_status | Status de provisionamento do ouvinte. |
    | IC relacionado: cmdb_ci_lb_pool ||
    | name | Nome criado do padrão, composto por: * nome do balanceador de carga * tipo de protocolo * port * tipo de recurso "pool" {#ibm-cloud-platform-discovery__ul_aqn_r1y_khb} |
    | object_id | Identificador exclusivo do pool de balanceadores de carga. |
    | port | Porta de protocolo do back-end. |
    | pool_status | Status de provisionamento do pool de balanceadores de carga. |
    | load_balancing_method | Método de balanceamento de carga. Um dos seguintes algoritmos: * "Roundrobin" * "WEighted_RR" * "LEASTCONNECTION" {#ibm-cloud-platform-discovery__ul_f4f_rzt_3hb} |
    | IC relacionado: cmdb_ci_lb_pool_member ||
    | name | Nome criado do padrão, composto por: * nome do balanceador de carga * tipo de protocolo * Endereço IP do membro do pool {#ibm-cloud-platform-discovery__ul_bxl_5cy_khb} |
    | object_id | Identificador exclusivo do membro do pool de balanceadores de carga, composto por: * ID de membro * ID do ouvinte {#ibm-cloud-platform-discovery__ul_tkx_xcy_khb} |
    | ip_address | Endereço IP de um membro do balanceador de carga. |
    | server_id | ID do membro na nuvem da IBM. |
    | load_balancer | Nome do balanceador de carga relacionado. |
    | IC relacionado: cmdb_ci_lb_health_service ||
    | name | Nome criado do padrão, composto por: * nome do balanceador de carga * tipo de protocolo * tipo de recurso: verificação de integridade * ID do recurso {#ibm-cloud-platform-discovery__ul_k2w_1dy_khb} |
    | object_id | Identificador exclusivo da Verificação do serviço de integridade. |
    | monitor_type | Tipo de verificação de integridade. Um dos seguintes: * TCP * HTTP * HTTPS {#ibm-cloud-platform-discovery__ul_epn_lb5_3hb} |
    | timeout_sec | Tempo limite, em segundos, para aguardar respostas de verificação de integridade. |
    | check_interval_sec | Intervalo, em segundos, para executar a verificação de integridade. |
    [ ]

    {#ibm-cloud-platform-discovery__table_o21_dlv_2hb}

Recursos descobertos dos Grupos do local na nuvem da IBM
:   {#ibm-cloud-platform-discovery__table_location_groups__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_cloud_location_group ||
    | name | Um nome descritivo usado para identificar um grupo do local. |
    | object_id | O ID do registro do grupo do local. |
    | Nome de locationGroupType | O nome do tipo de grupo do local. |
    | short_description | Uma pequena observação sobre um grupo do local a ser usado a seu critério. |
    | ID do tipo de locationGroup | O ID do tipo de grupo do local. |
    [ ]

    {#ibm-cloud-platform-discovery__table_location_groups}

Recursos descobertos do IBM Cloud Network
:   {#ibm-cloud-platform-discovery__table_wlf_ybx_jhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_network ||
    | name | Número de VLAN. |
    | object_id | Identificador exclusivo da rede. |
    | access_port_vlan | Número de VLAN. |
    | is_external | Valor do espaço de rede. O valor é: * verdadeiro se o network_space for "PUBLIC" * falso se o network_space for "PRIVADO". {#ibm-cloud-platform-discovery__ul_sz1_tjx_jhb} |
    | state | O estado tem o valor "disponível". |
    | IC relacionado: cmdb_ci_cloud_subnet ||
    | name | Nome, composto por: "network_identifier/cidr" |
    | object_id | Identificador exclusivo de sub-rede. |
    | subnet_mask | Máscara de rede da sub-rede. |
    | gateway | Endereço IP do gateway. |
    | cidr | Método para alocar endereços IP e roteamento de IP: "network_identifier/cidr". |
    | categoria | Tipo de sub-rede. |
    | broadcast_address | Endereço de transmissão da sub-rede. |
    | available_ip_count | Número de endereços IP disponíveis na sub-rede. |
    | IC relacionado: cmdb_ci_compute_security_group ||
    | name | Nome do grupo de segurança. |
    | object_id | Identificador exclusivo do grupo de segurança. |
    | short_description | Descrição do grupo de segurança que você fornece para facilitar a identificação. |
    | IC relacionado: cmdb_ci_compute_security_group_rule ||
    | name | Campo com o mesmo valor do campo object_id da regra do grupo de segurança. |
    | object_id | Identificador exclusivo da regra do grupo de segurança. |
    | criado | Data em que o IC foi criado. |
    | direção | Direção das informações. Um dos seguintes: * de entrada * saída {#ibm-cloud-platform-discovery__ul_zqw_vny_jhb} |
    | Ethertype | Ethertype. Um dos seguintes: * IPv4 * IPv6 {#ibm-cloud-platform-discovery__ul_jyf_zny_jhb} |
    | port_range_min | A primeira porta do intervalo ao qual a regra se aplica. |
    | port_range_max | A última porta do intervalo ao qual a regra se aplica. |
    | protocolo | Protocolo ao qual a regra é aplicada. |
    | remote_group_id | ID do grupo de segurança para o grupo de segurança de origem/destino. Isso significa que esta regra se aplica a todos os endereços IP que foram configurados neste grupo de segurança. |
    [ ]

    {#ibm-cloud-platform-discovery__table_wlf_ybx_jhb}

Recursos descobertos do IBM Cloud Organizations and Space
:   {#ibm-cloud-platform-discovery__table_vbc_2cx_jhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_cloud_org ||
    | name | Nome da organização na nuvem. |
    | guid | Identificador exclusivo da organização. |
    | url | URL exclusivo da organização. |
    | billing_enabled | Método de faturamento em uso pela organização. Um dos seguintes: * Habilitado / (VERDADEIRO) * Desativado / (FALSO) {#ibm-cloud-platform-discovery__ul_ngl_rpy_jhb} |
    | quota_definition_url | Recursos que estão disponíveis para uma organização. |
    | Spaces_url | URL exclusivo do espaço atribuído à organização. |
    | operational_status | Status operacional da organização. |
    | IC relacionado: cmdb_ci_cloud_space ||
    | name | Nome exclusivo do espaço. |
    | object_id | Identificador exclusivo de espaço (guid). |
    | alllow_ssh | O acesso à aplicação por SSH é permitido ou não. Booliano, um de: * VERDADEIRO * FALSO {#ibm-cloud-platform-discovery__ul_dmk_yzn_lhb} |
    | URL | URL do espaço da descrição de metadados. |
    [ ]

    {#ibm-cloud-platform-discovery__table_vbc_2cx_jhb}

Recursos descobertos dos Grupos de recursos de nuvem da IBM
:   {#ibm-cloud-platform-discovery__table_ezd_1k1_xhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_resource_group ||
    | name | Nome do grupo de recursos. |
    | object_id | Identificador exclusivo do grupo de recursos. |
    | quota_id | Valor que identifica o ID da cota associada ao grupo de recursos. |
    [ ]

    {#ibm-cloud-platform-discovery__table_ezd_1k1_xhb}

Recursos descobertos da chave SSH do IBM Cloud
:   {#ibm-cloud-platform-discovery__table_v5p_tdx_jhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_cloud_key_pair ||
    | name | Nome para identificar uma chave SSH. |
    | object_id | ID do registro de chave SSH. |
    | chave | Registro de chave SSH. |
    | finger_print | Sequência curta de bytes usada para autenticar ou pesquisar uma chave SSH mais longa. Este valor é gerado automaticamente ao adicionar ou modificar a chave SSH. Somente leitura. As mudanças feitas são ignoradas. |
    | criado _date | Data em que a chave SSH foi adicionada. Somente leitura. As mudanças feitas são ignoradas. |
    | modify_date | Data em que a chave SSH foi modificada. Somente leitura. As mudanças feitas são ignoradas. |
    | short_description | Descrição SSH que você fornece para facilitar a identificação. |
    | IC relacionado: cmdb_ci_ibm_datacenter ||
    | name | Nome do datacenter. |
    | region | Região em que o datacenter está. |
    | status_descoberta | Informações de status sobre o datacenter da IBM. |
    | sys_class_name | Classe do datacenter |
    | IC relacionado: cmdb_ci_cloud_service_account ||
    | name | Nome da conta de serviço em nuvem. |
    | account_id | ID da conta para esta conta de serviço em nuvem. |
    | discovery_credentials | Credenciais para esta conta de serviço em nuvem. |
    | datacenter_url | URL usada para preencher datacenters lógicos (LDCs). |
    | datacenter_type | Tipo de datacenter. Por exemplo, IBM Datacenter \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | Status da última execução de Descobrir datacenters. |
    [ ]

    {#ibm-cloud-platform-discovery__table_v5p_tdx_jhb}

Recursos descobertos do IBM Cloud Storage
:   {#ibm-cloud-platform-discovery__table_zd3_wdx_jhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_storage_volume ||
    | name | Nome de usuário usado para: * acessar um volume de armazenamento não EVault * registrar o agente do servidor EVault com o sistema de backup do cofre {#ibm-cloud-platform-discovery__ul_cjk_4gd_khb} |
    | object_id | Identificador exclusivo da conta de armazenamento. |
    | tamanho | Capacidade da conta de armazenamento, medida em gigabytes. |
    | size_bytes | Capacidade da conta de armazenamento, medida em bytes. |
    | rótulo | Nome do recurso de rede de armazenamento. |
    | storage_type | Descrição do tipo de armazenamento. Por exemplo, NAS. |
    | fqdn | Endereço IP de um recurso de armazenamento ou nome de domínio totalmente qualificado. |
    | dispositivo | Número de identificação exclusivo do dispositivo associado a um volume de armazenamento. |
    | IC relacionado: cmdb_ci_storage_vol_snapshot ||
    | name | Nome de um recurso de rede de armazenamento. |
    | object_id | Identificador exclusivo de armazenamento. |
    | capacidade | Capacidade do volume de snapshot em gigabytes. |
    | fqdn | Endereço IP de um recurso de armazenamento ou nome de domínio totalmente qualificado. |
    | local | Zona de disponibilidade exclusiva em que o volume de armazenamento está localizado. |
    | IC relacionado: cmdb_ci_ibm_datacenter ||
    | name | Nome do datacenter. |
    | region | Região em que o datacenter está. |
    | status_descoberta | Informações de status sobre o datacenter da IBM. |
    | sys_class_name | Classe do datacenter |
    | IC relacionado: cmdb_ci_cloud_service_account ||
    | name | Nome da conta de serviço em nuvem. |
    | account_id | ID da conta para esta conta de serviço em nuvem. |
    | discovery_credentials | Credenciais para esta conta de serviço em nuvem. |
    | datacenter_url | URL usada para preencher LDCs. |
    | datacenter_type | Tipo de datacenter. Por exemplo, IBM Datacenter \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | Status da última execução de Descobrir datacenters. |
    | IC relacionado: cmdb_ci_availability_zone ||
    | name | Nome da zona de disponibilidade (AZ). |
    | object_id | Identificador exclusivo para este recurso. |
    | short_description | Descrição da zona de disponibilidade fornecida. |
    [ ]

    {#ibm-cloud-platform-discovery__table_zd3_wdx_jhb}

Recursos descobertos do IBM Cloud Virtual Server
:   {#ibm-cloud-platform-discovery__table_njj_ydx_jhb__entry__2}

    | Campo | Descrição |
    |-|-|
    | IC principal: cmdb_ci_vm_instance ||
    | name | Nome da VM. |
    | object_id | Identificador exclusivo da VM. |
    | dns_domain | Nome do servidor de domínio da VM. |
    | fqdn | Endereço IP da VM. |
    | short_description | Descrição em uma anotação anexada à VM no console da IBM. |
    | cpus | Número de núcleos de CPU atribuídos a esta VM. |
    | memória | Tamanho da memória atribuído a esta VM. |
    | discos | Número de discos atribuídos a esta VM. |
    | state | O estado de execução da VM. * Ativado -- retornado como "Em execução" da API. * Desativado -- retornado como "Interrompido" da API. {#ibm-cloud-platform-discovery__ul_dyp_xt4_n3b} |
    | Placement_group_id | ID do grupo de posicionamento. |
    | nics | Número de NICs. |
    | IC relacionado: cmdb_ci_nic ||
    | name | Nome, composto por: * nome do balanceador de carga * Porta {#ibm-cloud-platform-discovery__ul_bxv_2dy_khb} |
    | object_id | Identificador exclusivo da NIC. |
    | ip_address | IP configurado na NIC. |
    | mac_address | Detalhes do MAC da NIC. |
    | netmask | Máscara usada para dividir o endereço IP em sub-redes e para especificar os hosts disponíveis na rede. |
    | status | Estado da NIC. |
    | IC relacionado: cmdb_ci_endpoint_vnic ||
    | name | Nome do endpoint do VNIC. |
    | object_id | Identificador exclusivo do endpoint do VNIC. |
    | Host | Identificador de host. |
    | IC relacionado: cmdb_ci_storage_volume ||
    | name | Nome de usuário usado para: * acessar um volume de armazenamento não EVault * registrar o agente do servidor EVault com o sistema de backup do cofre {#ibm-cloud-platform-discovery__ul_j1n_ktd_khb} |
    | object_id | Identificador exclusivo da conta de armazenamento. |
    | tamanho | Capacidade da conta de armazenamento, medida em gigabytes. |
    | size_bytes | Capacidade da conta de armazenamento, medida em bytes. |
    | rótulo | Nome do recurso de rede de armazenamento. |
    | storage_type | Descrição do tipo de armazenamento. Por exemplo, NAS. |
    | fqdn | Endereço IP de um recurso de armazenamento ou nome de domínio totalmente qualificado. |
    | dispositivo | Número de identificação exclusivo do convidado associado a um volume de armazenamento. |
    | IC relacionado: cmdb_ci_endpoint_nfs ||
    | name | Nome do endpoint do NFS. |
    | Host | Identificador de host. |
    | protocolo | Protocolo que foi aplicado. |
    | tipo | Tipo de endpoint do NFS. |
    | criado | Data em que o endpoint do NFS foi criado. |
    | atualizado | Data em que o endpoint do NFS foi atualizado. |
    | discovery_source | Origem da descoberta. Por exemplo, ServiceWatch |
    | host_name | Nome do host do endpoint do NFS |
    | IC relacionado: cmdb_ci_endpoint_iscsi ||
    | Host | Identificador de host para o endpoint ISCSI. |
    | port | Porta para determinar como o GCP está em contato com as VMs. |
    | protocolo | Protocolo que foi aplicado. |
    | tipo | Tipo de endpoint ISCSI |
    | criado | Data em que o endpoint ISCSI foi criado. |
    | atualizado | Data em que o endpoint ISCSI foi atualizado. |
    | discovery_source | Origem da descoberta. Por exemplo, ImportSet |
    | host_name | Nome do host do endpoint ISCSI |
    | IC relacionado: cmdb_ci_endpoint_block ||
    | name | Nome do endpoint do bloco. |
    | object_id | Identificador exclusivo do endpoint do bloco. |
    | Host | Identificador de host. |
    | IC relacionado: cmdb_ci_os_template ||
    | name | Nome da imagem. Por exemplo, "CentOS 7.0-64 Minimal for VSI". |
    | object_id | Identificador exclusivo da imagem. |
    | guest_os | SO usado pela imagem. Por exemplo, Linux. |
    | root_device_type | Tipo de dispositivo usado pela raiz. |
    | image_source | Origem da imagem. |
    | image_type | Tipo de imagem. |
    | infuse_key | Chave usada para infundir a imagem. |
    | update_host_name | Atualize o nome do host da imagem. |
    | credenciais | Credenciais da imagem. |
    | versão | Versão do SO. Por exemplo, "7.0-64 Mínimo para VSI". |
    | IC relacionado: cmdb_ci_cloud_key_pair ||
    | name | Nome para identificar uma chave (rótulo de chave). |
    | object_id | ID do registro de chave. |
    | chave | Registro de chave. |
    | finger_print | Sequência curta de bytes usada para autenticar ou pesquisar uma chave. Este valor é gerado automaticamente ao adicionar ou modificar a chave. Somente leitura. As mudanças feitas são ignoradas. |
    | criado _date | Data em que a chave foi adicionada. Somente leitura. As mudanças feitas são ignoradas. |
    | modify_date | Data em que a chave foi modificada. Somente leitura. As mudanças feitas são ignoradas. |
    | short_description | Descrição que você fornece para facilitar a identificação. |
    | IC relacionado: cmdb_ci_compute_security_group ||
    | name | Nome do grupo de segurança. |
    | object_id | Identificador exclusivo do grupo de segurança. |
    | short_description | Descrição do grupo de segurança que você fornece para facilitar a identificação. |
    | IC relacionado: cmdb_ci_endpoint_comp_security ||
    | Host | Identificador de host do endpoint de segurança de computação. |
    | port | Identificador exclusivo do endpoint de segurança de computação. |
    | protocolo | Protocolo que foi aplicado. |
    | tipo | Tipo de endpoint de segurança de computação. |
    | criado | Data em que o endpoint de segurança de computação foi adicionado. Somente leitura. As mudanças feitas são ignoradas. |
    | atualizado | Data em que o endpoint de segurança de computação foi modificado. Somente leitura. As mudanças feitas são ignoradas. |
    | discovery_source | Origem da descoberta. Por exemplo, Entrada manual. |
    | host_name | Nome do host do endpoint de segurança de computação. |
    | IC relacionado: cmdb_ci_ibm_datacenter ||
    | name | Nome do datacenter. |
    | region | Região em que o datacenter está. |
    | status_descoberta | Informações de status sobre o datacenter da IBM. |
    | sys_class_name | Classe do datacenter |
    | IC relacionado: cmdb_ci_availability_zone ||
    | name | Nome da zona de disponibilidade (AZ). |
    | object_id | Identificador exclusivo para este recurso. |
    | short_description | Descrição da zona de disponibilidade fornecida. |
    | IC relacionado: cmdb_ci_cloud_service_account ||
    | name | Nome da conta de serviço em nuvem. |
    | account_id | ID da conta para esta conta de serviço em nuvem. |
    | discovery_credentials | Credenciais para esta conta de serviço em nuvem. |
    | datacenter_url | URL usada para preencher LDCs. |
    | datacenter_type | Tipo de datacenter. Por exemplo, IBM Datacenter \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | Status da última execução de Descobrir datacenters. |
    [ ]

    {#ibm-cloud-platform-discovery__table_njj_ydx_jhb}

IBM Cloud Virtual Server - Exibição de itens relacionados
:

## Relacionamentos entre ICs {#ibm-cloud-platform-discovery__section_kzg_xwz_ghb}

Esses relacionamentos são criados para oferecer suporte à descoberta do IBM Cloud Platform.

Relacionamentos para recursos descobertos do IBM Cloud Load Balancer
:   {#ibm-cloud-platform-discovery__table_vkt_ywd_rdb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_cloud_load_balancer |||
    | cmdb_ci_cloud_load_balancer | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_cloud_load_balancer | Contains::Contained by | cmdb_ci_lb_health_service |
    | IC relacionado: cmdb_ci_availability_zone |||
    | cmdb_ci_availability_zone | Hosted on::Hosts | cmdb_ci_cloud_load_balancer |
    | cmdb_ci_availability_zone | Contains::Contained by | cmdb_ci_lb_service |
    | IC relacionado: cmdb_ci_lb_service |||
    | cmdb_ci_lb_service | Hosted on::Hosts | cmdb_ci_cloud_load_balancer |
    | cmdb_ci_lb_service | Contains::Contained by | cmdb_ci_lb_pool |
    | IC relacionado: cmdb_ci_lb_pool |||
    | cmdb_ci_lb_pool | Hosted on::Hosts | cmdb_ci_cloud_load_balancer |
    | cmdb_ci_lb_pool | Owns::Owned by | cmdb_ci_lb_pool_member |
    | IC relacionado: cmdb_ci_lb_health_service |||
    | cmdb_ci_lb_health_service | Contains::Contained by | cmdb_ci_cloud_load_balancer |
    [ ]

    {#ibm-cloud-platform-discovery__table_vkt_ywd_rdb}

Relacionamentos para recursos descobertos de Grupos do local da nuvem da IBM
:   {#ibm-cloud-platform-discovery__table_e2b_t1b_xhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_cloud_location_group |||
    | cmdb_ci_cloud_location_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_cloud_location_group | Contains::Contained by | cmdb_ci_availability_zone |
    [ ]

    {#ibm-cloud-platform-discovery__table_e2b_t1b_xhb}

Relacionamentos para recursos descobertos do IBM Cloud Network
:   {#ibm-cloud-platform-discovery__table_lpw_y2x_jhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_network |||
    | cmdb_ci_network | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_network | Contains::Contained by | cmdb_ci_cloud_subnet |
    | IC relacionado: cmdb_ci_compute_security_group |||
    | cmdb_ci_compute_security_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_compute_security_group | Contains::Contained by | cmdb_ci_compute_security_group_rule |
    [ ]

    {#ibm-cloud-platform-discovery__table_lpw_y2x_jhb}

Relacionamentos para recursos descobertos de Grupos de Recursos de Nuvem da IBM
:   {#ibm-cloud-platform-discovery__table_lmb_yk1_xhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_resource_group |||
    | cmdb_ci_resource_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    [ ]

    {#ibm-cloud-platform-discovery__table_lmb_yk1_xhb}

Relacionamentos para recursos descobertos de chave SSH do IBM Cloud
:   {#ibm-cloud-platform-discovery__table_b3t_2fx_jhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_cloud_key_pair |||
    | cmdb_ci_cloud_key_pair | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    [ ]

    {#ibm-cloud-platform-discovery__table_b3t_2fx_jhb}

Relacionamentos para recursos descobertos do IBM Cloud Storage
:   {#ibm-cloud-platform-discovery__table_u5s_gfx_jhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_storage_volume |||
    | cmdb_ci_storage_volume | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_volume | Provisionado::Provisionado de | cmdb_ci_storage_vol_snapshot |
    | IC relacionado: cmdb_ci_storage_vol_snapshot |||
    | cmdb_ci_storage_vol_snapshot | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_vol_snapshot | Localizado em Zone::Zone contém | cmdb_ci_availability_zone |
    | IC relacionado: cmdb_ci_availability_zone |||
    | cmdb_ci_availability_zone | Contains::Contained by | cmdb_ci_storage_volume |
    [ ]

    {#ibm-cloud-platform-discovery__table_u5s_gfx_jhb}

Relacionamentos para recursos descobertos do IBM Cloud Virtual Server
:   {#ibm-cloud-platform-discovery__table_s4m_3fx_jhb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | IC relacionado: cmdb_ci_ibm_datacenter |||
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_ibm_datacenter | Contains::Contained by | cmdb_ci_availability_zone |
    | cmdb_ci_ibm_datacenter | Hosted on::Hosts | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_vm_instance |||
    | cmdb_ci_vm_instance | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_vm_instance | Localizado em:Casas | cmdb_ci_availability_zone |
    | cmdb_ci_vm_instance | Usos:Usado por | cmdb_ci_cloud_key_pair |
    | cmdb_ci_vm_instance | Contém:contido por | cmdb_ci_nic |
    | cmdb_ci_vm_instance | endpoint | cmdb_ci_nic |
    | IC relacionado: cmdb_ci_availability_zone |||
    | cmdb_ci_availability_zone | Hosted on::Hosts | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_nic |||
    | cmdb_ci_nic | Hosted on::Hosts | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_os_template |||
    | cmdb_ci_os_template | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_os_template | Provisionado::Provisionado por | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_compute_security_group |||
    | cmdb_ci_compute_security_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_compute_security_group | Implementar::Implementado de | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_storage_volume |||
    | cmdb_ci_storage_volume | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_volume | Implementar::Implementado de | cmdb_ci_vm_instance |
    | IC relacionado: cmdb_ci_cloud_key_pair |||
    | cmdb_ci_cloud_key_pair | Hospedado em:Hosts | cmdb_ci_cloud_service_account |
    [ ]

    {#ibm-cloud-platform-discovery__table_s4m_3fx_jhb}

Relacionamentos descobertos para a instância de máquina virtual (VM)
:   {#ibm-cloud-platform-discovery__table_vdw_x45_3mb__entry__3}

    | IC | Relacionamento | IC |
    |-|-|-|
    | Servidores \[cmdb_ci_server\] | Virtualized by:: Virtualizes | Instância de máquina virtual \[cmdb_ci_instance\] |
    [ ]

    {#ibm-cloud-platform-discovery__table_vdw_x45_3mb}

## Dados coletados pelo Mapeamento de serviços durante a descoberta baseada em marcadores {#ibm-cloud-platform-discovery__section_mtq_js983ubg_ppb}

O Mapeamento de serviços usa a descoberta baseada em tags para criar mapas de serviços de aplicativos, incluindo os componentes de nuvem. O aplicativo Mapeamento de serviços vem com os seguintes relacionamentos de IC pré-configurados usados para a descoberta baseada em tags. Esses relacionamentos de IC estão disponíveis a partir da versão 1.0.68 do ServiceNow Store. {#ibm-cloud-platform-discovery__id_yqp_xhy_qpb__entry__3}

| IC | Relacionamento | IC |
|-|-|-|
| Item de configuração \[cmdb_ci\] | Hospedado em: hosts | Datacenter lógico \[cmdb_ci_logical_datacenter\] |
| Datacenter lógico \[cmdb_ci_logical_datacenter\] | Hospedado em: hosts | Conta de serviço em nuvem \[cmdb_ci_cloud_service_account\] |
[ ]

{#ibm-cloud-platform-discovery__id_yqp_xhy_qpb}

## Solução de problemas {#ibm-cloud-platform-discovery__section_sf2_nsj_yhb}

Se o processo de mapeamento não prosseguir conforme o esperado, siga as sugestões a seguir.{#ibm-cloud-platform-discovery__table_ggn_ypj_yhb__entry__3}

| Sintoma | Causa | Solução |
|-|-|-|
| A Descoberta falha. A mensagem de descoberta contém as informações sobre um erro causado pelo tempo limite de REST. | Há muitos ICs enviando a resposta da chamada REST na implantação. O MID Server não pode processar a resposta da chamada REST sem exceder o limite de tempo controlado pelo parâmetro mid.sa.cloud.request_timeout. | Por padrão, o parâmetro mid.sa.cloud.request_timeout é definido como 30000 milissegundos. Aumente o valor deste parâmetro no relevante MID Server e execute a descoberta novamente. Nota: Se a lista relacionada Parâmetros de configuração para o MID Server relevante não mostrar este parâmetro, talvez seja necessário adicioná-lo. |
| O Designer de padrões falha durante uma sessão de depuração. A mensagem do Designer de padrões contém informações sobre um erro causado por um tempo limite. | O Designer de padrões falha devido a um tempo limite durante a depuração de padrão (e não durante a descoberta). | Por padrão, o parâmetro sa.debugger.max_timeout é definido como 240 segundos. Aumente o valor desse parâmetro no MID Server relevante. |
[ ]

{#ibm-cloud-platform-discovery__table_ggn_ypj_yhb}

