---
sourceDocument: 호주 IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/it-operations-management

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# IBM Cloud Platform 검색

# IBM Cloud Platform 검색 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 53분

애플리케이션은 ServiceNow 디스커버리 패턴을 사용하여 구성요소(Softlayer API v3 및 v3.1 및 Bluemix API v2)를 IBM Cloud Platform 찾습니다IBM Cloud Platform. 이러한 자원 중 일부를 검색하려면 에서 애플리케이션의 디스커버리 및 서비스 매핑 패턴ServiceNow Store최신 버전으로 업데이트해야 할 수 있습니다.
패치 7, Madrid 패치 2 이상의 릴리스를 ServiceNow AI Platform 사용하여 London 패턴을 사용할 수 있습니다.

## 스토어에서 앱 요청 {#ibm-cloud-platform-discovery__section_gvb_cql_rlb}

사용 가능한 모든 앱을 보고 스토어에 요청을 제출하는 방법에 대한 자세한 내용을 보려면 다음을 [ServiceNow Store](https://store.servicenow.com/sn_appstore_store.do#!/store/home) 방문하십시오. 출시된 모든 앱의 누적 릴리스 정보는 [ServiceNow Store 버전 기록 릴리스 정보](https://docs.servicenow.com/bundle/store-release-notes/page/release-notes/store/sn-store-release-notes.html)를 참조하십시오.{#ibm-cloud-platform-discovery__inline-send-to-store}

## 필수 구성요소 {#ibm-cloud-platform-discovery__section_xrh_4wz_ghb}

MID 서버
:   클라우드 검색에 전용 MID 서버를 사용하십시오. MID 서버에는 16개의 코어와 8GB(4GB JVM(Java 메모리 모델) 메모리 할당 포함)가 있어야 합니다.
:   인터넷 접근을 통해 전용 MID 서버를 배포하고 연결합니다.

자격 증명
:   클라우드 자원이 IBM Cloud에 있습니다. IBM 계정에 접근하기 위한 IBM 자격 증명을 생성합니다.  
    1. 다음으로 이동 디스커버리자격 증명.
    2. 새로 만들기를 클릭합니다.
    3. IBM 자격 증명을 클릭한 후 양식을 작성합니다.  
       {#ibm-cloud-platform-discovery__table_gxd_ljv_2hb__entry__2}

       | 필드 | 설명 |
       |-|-|
       | 이름 | 자격 증명 이름입니다. 예를 들어 <kbd class="ph userinput">ibm-cred</kbd>가 있습니다. |
       | 순서 | 플랫폼이 장치에 로그온하려고 할 때 이 자격 증명을 시도하는 순서입니다. 숫자가 작을수록 자격 증명이 목록에서 더 위에 나타납니다. 많은 수의 자격 증명을 사용하거나 로그인 시도가 3회 실패하여 보안상 사용자가 잠기는 경우 자격 증명 순서를 설정하십시오. 모든 자격 증명의 순서 번호가 같거나 없으면 인스턴스에서 임의의 순서로 자격 증명을 시도합니다. 기본값은 100입니다. |
       | Softlayer API 사용자 | Softlayer API의 사용자 이름입니다. Softlayer 콘솔에 정의된 Softlayer API 사용자 이름을 사용합니다. |
       | Softlayer API 키 | Softlayer API의 키입니다. Softlayer 콘솔에 정의된 Softlayer API 키를 사용합니다. |
       | Bluemix API 키 | Bluemix API의 키입니다. IBM Cloud 콘솔에 정의된 Bluemix API 키를 사용합니다. |
       [표 1. 자격 증명 양식]

       {#ibm-cloud-platform-discovery__table_gxd_ljv_2hb}
    4. 제출을 클릭합니다.
    {#ibm-cloud-platform-discovery__ol_exd_ljv_2hb}

IBM Cloud 서비스 계정 생성
: IBM Cloud 서비스 계정을 생성하려면 이전 절차에 정의된 자격 증명을 사용합니다.  
1. 다음으로 이동 Cloud Provisioning and Governance서비스 계정.
2. 새로 만들기를 클릭합니다.
3. 양식의 필드에 내용을 입력합니다.  
   {#ibm-cloud-platform-discovery__table_l3l_fyx_hhb__entry__2}

   | 필드 | 설명 |
   |-|-|
   | 이름 | 자격 증명 이름입니다. 예: <kbd class="ph userinput">ibm-snow</kbd> |
   | 계정 ID | IBM 계정 ID 이름입니다. IBM 계정 ID를 입력합니다. |
   | 디스커버리 자격 증명 | 디스커버리 앞에서 정의한 자격 증명입니다. |
   | 데이터 센터 유형 | 데이터센터 유형입니다. 예: <kbd class="ph userinput">IBM 데이터센터 [cmdb_ci_ibm_datacenter]</kbd> |
   [표 2. 클라우드 서비스 계정 양식]

   {#ibm-cloud-platform-discovery__table_l3l_fyx_hhb}
4. 제출을 클릭합니다.
{#ibm-cloud-platform-discovery__ol_k3l_fyx_hhb}

디스커버리 일정 생성
:   을 통해 일정을 디스커버리 구성하려면 다음 문서를 참조하십시오[IBM 디스커버리디스커버리 관리자 작업 공간에서 일정 생성](https://servicenow-prod.fluidtopics.net/txoW18fjpliRk5WxVbCW2A "대시보드를 디스커버리 관리자 작업 공간 사용하여 일정을 IBM 디스커버리 생성합니다.").디스커버리 관리자 작업 공간
:   서버리스 디스커버리 일정을 구성하려면 다음을 수행합니다.

    1. 에서 ServiceNow AI Platform다음으로 이동합니다. 디스커버리디스커버리 일정.
    2. 새로 만들기를 클릭합니다.
    3. 양식의 필드에 내용을 입력합니다.  
       {#ibm-cloud-platform-discovery__table_i3d_bzy_fhb__entry__2}

       | 필드 | 설명 |
       |-|-|
       | 이름 | 이 디스커버리 일정의 이름입니다. 예: <kbd class="ph userinput">서버리스 패턴</kbd> |
       | 검색 | 검색 유형입니다. 서버리스 선택 |
       | MID 서버 | 의 이름.MID 서버 예를 들면, <kbd class="ph userinput">Discovery_Server</kbd> |
       | 활성 | 에 대해 이 일정을 사용하도록 설정하는 옵션입니다.디스커버리 활성화하려면 이 확인란을 선택합니다 디스커버리. |
       | 실행 | 일정을 실행하는 빈도를 지정합니다.디스커버리 |
       [표 3. 디스커버리 일정 양식]

       {#ibm-cloud-platform-discovery__table_i3d_bzy_fhb}
    4. 일정 양식의 디스커버리 헤더를 마우스 오른쪽 버튼으로 클릭하고 저장을 선택합니다.

    5. 서버리스 실행 패턴 탭을 클릭합니다.
    6. 새로 만들기를 클릭합니다.
    7. 양식의 필드에 내용을 입력합니다.  
       {#ibm-cloud-platform-discovery__table_k3d_bzy_fhb__entry__2}

       | 필드 | 설명 |
       |-|-|
       | 이름 | 이 서버리스 실행 패턴의 이름입니다. 예: <kbd class="ph userinput">IBM1</kbd> |
       | 패턴 | 실행할 패턴의 이름입니다. 여러 패턴을 실행하려면 여러 기록을 생성합니다. |
       | 프록시 호스트 | 프록시 서버를 설치할 컴퓨터의 전체 주소 도메인 이름입니다. 전역을 지정합니다. |
       | 활성 | 에 대해 이 일정을 사용하도록 설정하는 옵션입니다.디스커버리 활성화하려면 이 확인란을 선택합니다 디스커버리. |
       [표 4. 서버리스 실행 패턴 양식]

       {#ibm-cloud-platform-discovery__table_k3d_bzy_fhb}
    8. 패턴에 IBM Cloud Platform 필요한 매개변수를 다음과 같이 구성합니다.  
       {#ibm-cloud-platform-discovery__table_l3d_bzy_fhb__entry__2}

       | 매개변수 | 설명 |
       |-|-|
       | cloud_cred_id | 구성에 지정된 IBM 자격 증명의 sys_id입니다. |
       | cloud_account_id | IBM 계정 ID입니다. |
       | cloud_datacenter_type | cmdb_ci_ibm_datacenter |
       [표 5. 디스커버리 패턴 시작 관리자 매개변수]

       {#ibm-cloud-platform-discovery__table_l3d_bzy_fhb}
    9. 업데이트합니다.
    10. 시작 디스커버리하려면 서버리스 디스커버리 정의로 이동하여 지금 검색을 클릭합니다.
    {#ibm-cloud-platform-discovery__ol_txj_x31_hhb}

IBM 플로우 - 가로 검색
:
    * 서버리스 일정으로 검색을 수행하려면 선택된 IBM Cloud Platform 패턴이 IBM Cloud Platform 자원을 실행하고 검색합니다.
    * 서비스 계정으로 검색을 수행하려면 전체 IBM Cloud Platform 검색 일정이 실행되어 지원되는 모든 IBM Cloud Platform 자원을 검색합니다.
    {#ibm-cloud-platform-discovery__ul_hfd_mzx_khb}

클라우드 사용자 지정 작업
:   클라우드 REST - 컨텍스트에 응답 추가  
    대규모 응답과 향상된 메모리 사용을 지원하는 클라우드 REST 쿼리에 대한 운영입니다.

    * 응답 변수 이름 필드에 설정된 응답에 대한 테이블을 지정하는 경우를 제외하고 클라우드 REST 쿼리 사용자 지정 작업에서와 동일한 값으로 모든 필드를 지정합니다.

    * 구문 분석 정의를 없음으로 설정합니다.
    {#ibm-cloud-platform-discovery__ul_mdn_wj5_lhb}

:   IBM 계정에 대한 데이터를 검색하는 메서드

    1. 다음으로 이동 패턴 디자이너사용자 지정 운영.

    2. 클라우드 REST -- 컨텍스트에 응답 추가를 클릭합니다.

    {#ibm-cloud-platform-discovery__ol_nlw_wp5_lhb}

    메서드: 호출 가져오기

    데이터를 검색하는 데 사용되는 API URL:  
    * 부하 분산 장치 https://api.softlayer.com/rest\<api_version\>/SoftLayer_Network_LBaaS_LoadBalancer/getAllObjects?objectMask=mask\[listeners\[defaultPool\],members,healthMonitors\]
    * 네트워크 https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getNetworkVlans?objectMask=mask\[primaryRouter.datacenter,name,id,vlanNumber,networkSpace\]
    * 네트워크 https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getSubnets?objectMask=mask\[datacenter\]
    * 네트워크 https://api.softlayer.com/rest/\<API_VERSION\>/SoftLayer_Account/getSecurityGroups?objectMask=mask\[rules\]
    * 조직 및 공간 https://api.\<region\>.bluemix.net/v2/organizations
    * https://api.\<region\>.bluemix.net/v2/spaces
    * SSH 키 https://api.softlayer.com/rest/v3/SoftLayer_Account/SoftLayer_Account/getSshKeys
    * 저장소 https://api.softlayer.com/rest/\<api_version\>/SoftLayer_Account/getNetworkStorage
    * 가상 서버 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}

EVAL 함수

:   다음 EVAL 함수를 사용하여 부하 분산 장치 API 응답을 전체 JSON 형식으로 변환합니다. 기본 응답은 "\[\<자원 객체\>\]" 형식입니다.

        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;

    다음 EVAL 함수를 사용하여 네트워크 API 응답을 전체 JSON 형식으로 변환합니다. 기본 응답은 "\[\<자원 객체\>\]" 형식입니다.  

        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);

    다음 EVAL 함수를 사용하여 LB 가용 영역(데이터센터)에서 IBM 지역을 가져옵니다. 패턴 내의 다른 자원에도 동일한 함수가 사용됩니다.  

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

    다음 EVAL 함수를 사용하여 패턴에서 필요한 알고리즘을 선택합니다.  

        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;

    다음 EVAL 함수를 사용하여 조직과 해당 공간을 호스팅하는 계정에 대한 고유 영역을 구문 분석합니다.  

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

    다음 EVAL 함수를 사용하여 고유한 지역을 가져오는 반복이 수행되는 IBM Cloud 계정에 할당된 모든 조직에 대한 정보를 가져옵니다.  

        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);

    다음 EVAL 함수를 사용하여 고유한 지역을 가져오는 반복이 수행되는 모든 IBM Cloud 계정에 대한 정보를 가져옵니다.  

        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);
        }
             
    다음 EVAL 함수를 사용하여 고유한 지역을 기준으로 모든 공간을 필터링합니다.  

        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;

    다음 EVAL 함수를 사용하여 저장소 검색을 기준으로 모든 공간을 필터링합니다.  

        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);

    그대로 유지된 응답은 "\[\<자원 객체\>\]" 형식이므로 다음 EVAL 함수를 사용하여 API 응답을 전체 JSON 형식으로 변환하십시오.  

        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);

    다음 EVAL 함수를 사용하여 저장소 볼륨 테이블에 가용 영역을 채웁니다.  

        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;
        }

    다음 EVAL 함수를 사용하여 저장소 볼륨 테이블에 지역을 채웁니다.  

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

    다음 EVAL 함수를 사용하여 저장소 크기를 기가바이트에서 바이트로 변환하십시오.  

        var rtrn = '';

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

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

    다음 EVAL 함수를 사용하여 저장소 크기를 기가바이트에서 바이트로 변환하십시오.  

        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);

    API에서 받은 JSON을 JSON 파서가 사용할 수 있는 형식으로 변환하는 다음 EVAL 종결을 사용합니다. 기본 JSON은 `$vm_json_array`에 저장되고 새 JSON은 `$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); 

    전원 상태가 실행 중인 경우 '켜짐'을 반환하는 다음 EVAL 종결을 사용합니다. 전원 상태가 꺼져 있으면 값 '꺼짐'이 반환됩니다.  

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

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

    제공된 가용 영역 이름을 기반으로 CI의 지역을 반환하는 다음 EVAL 종결을 사용합니다.  

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

    VM을 네트워크 저장소와 연결하는 HashSets의 HashMap을 작성하는 다음 EVAL 종결을 사용합니다. 다음 키가 사용됩니다.

    * P = 페이지
    * V = VM
    * N = 네트워크 저장소
    {#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); 

    다음 EVAL 종결을 사용하여 테이블에서 중복 항목을 제거합니다.  

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

    현재 보안 그룹 ID와 관련된 VM ID 목록을 작성하는 다음 EVAL 종결을 사용합니다.  

        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;

    보안 그룹과 이를 사용하도록 구성된 VM 간에 HashSet의 HashMap을 작성하는 다음 EVAL 종결을 사용합니다.  

        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);

    현재 VM에서 현재 보안 그룹 ID를 사용하고 있는 경우 'True'를 반환하는 다음 EVAL 종결을 사용합니다.  

        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);

    현재 VM에서 현재 저장소 볼륨을 사용하고 있는 경우 'true'를 반환하는 다음 EVAL 종결을 사용합니다.  

        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'
        }

    그대로 유지된 응답은 "\[\<자원 객체\>\]" 형식이므로 다음 EVAL 함수를 사용하여 API 응답을 전체 JSON 형식으로 변환하십시오.

        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);

    "lg_id" 열을 기준으로 "location_groups_az" 테이블의 고유 위치 그룹을 구문 분석하고 결과를 포함하는 새 테이블 "location_groups_az_unique"를 생성합니다.

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

    location_groups_az_uniquetable의 새 열에 저장된 위치 그룹당 가용 영역의 목록을 생성합니다. 연속 단계로 고유한 관계를 만들 수 있도록 목록 기록이 쉼표로 나뉩니다.

        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;

클라우드 관련 CI 관계 활성화
:   검색된 구성요소를 서비스 인스턴스에 포함하려면 에서 태그 기반 검색 서비스 매핑에 사용되는 CI 관계를 활성화합니다. 이 CI 관계는 ServiceNow Store에서 1.0.68 릴리스부터 사용할 수 있습니다. 운영 단계는 [태그 기반 검색 구성](https://servicenow-prod.fluidtopics.net/z6FbVohjUf~d~vvRCqxxKg "태그 기반 검색 프로세스 중에 애플리케이션 서비스에 포함되는 CI 서비스 매핑 를 제어하도록 기본 구성을 미세 조정할 수 있습니다.") 문서를 참조하십시오.

(선택 사항) 클라우드 CI에서 서비스 계정 및 논리 데이터센터 필드 채우기
:   버전 1.30.2부터 디스커버리 및 서비스 매핑 패턴 는 서비스 계정 및 논리 데이터센터 필드를 클라우드 CI에 직접 채워 쿼리 성능을 향상시킬 수 있습니다. 자세한 내용은 [CI 테이블에서 직접 필드 채우기를 통한 쿼리 성능 향상](https://servicenow-prod.fluidtopics.net/PSPR~65ew3CVPVWVhoCOew "CMDB의 서비스 계정 및 LDC 채우기 예약된 작업은 클라우드 CI(구성 항목) 테이블의 서비스 계정 및 논리 데이터센터 필드와 하드웨어 [cmdb_ci_hardware] 테이블의 가상 머신 개체 필드를 채웁니다. 이렇게 직접 채우면 쿼리 복잡성이 줄어들고 쿼리 성능이 향상됩니다.") 문서를 참조하십시오.

## 가로 검색 중 디스커버리에서 수집하는 데이터 {#ibm-cloud-platform-discovery__section_zdq_vwz_ghb}

데이터는 다음 패턴을 사용하여 수집됩니다.

* IBM Cloud 부하 분산 장치
* IBM 클라우드 위치 그룹
* IBM 클라우드 네트워크
* IBM Cloud 조직 및 공간
* IBM Cloud 자원 그룹
* IBM Cloud SSH 키
* IBM Cloud 저장소
* IBM Cloud 가상 서버
{#ibm-cloud-platform-discovery__ul_pmq_bnt_3hb}  
구성요소에 대해 IBM 수집된 데이터:

IBM Cloud 부하 분산 장치에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_o21_dlv_2hb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_cloud_load_balancer ||
    | 이름 | 부하 분산 장치 이름입니다. |
    | object_id | 부하 분산 장치 고유 식별자입니다. |
    | fqdn | 부하 분산 장치 주소(호스트 이름)입니다. |
    | dns_name | 부하 분산 도메인 서버 이름입니다. |
    | short_description | 사용자가 쉽게 식별할 수 있도록 사용자가 제공하는 부하 분산 장치에 대한 설명입니다. |
    | operational_status | 부하 분산 장치 상태로 다음 중 하나입니다. * 온라인 * 오프라인 {#ibm-cloud-platform-discovery__ul_kqp_xwv_jhb} |
    | 위치 | 데이터센터 위치입니다. |
    | 상태 | 부하 분산 장치 프로비저닝 상태입니다. |
    | 관련 CI: cmdb_ci_lb_service ||
    | 이름 | 다음으로 구성된 패턴 생성 이름: * 부하 분산 장치 이름 * 프로토콜의 유형 * 자원 유형 수신기 {#ibm-cloud-platform-discovery__ul_bwh_l5x_khb} |
    | object_id | 부하 분산 장치 고유 식별자입니다. |
    | 포트 | 수신기의 포트 번호입니다. |
    | front_end_port | 수신기의 프로토콜 포트 번호입니다. |
    | listener_protocol | 수신기의 프로토콜입니다. 다음 프로토콜 중 하나입니다. * TCP * HTTP * HTTPS {#ibm-cloud-platform-discovery__ul_c2c_5wt_3hb} |
    | operational_status | 수신기의 프로비저닝 상태입니다. |
    | 관련 CI: cmdb_ci_lb_pool ||
    | 이름 | 다음으로 구성된 패턴 생성 이름: * 부하 분산 장치 이름 * 프로토콜의 유형 * 포트 * 자원 유형 "풀" {#ibm-cloud-platform-discovery__ul_aqn_r1y_khb} |
    | object_id | 부하 분산 장치 풀 고유 식별자입니다. |
    | 포트 | 백엔드의 프로토콜 포트입니다. |
    | pool_status | 부하 분산 장치 풀 프로비저닝 상태입니다. |
    | load_balancing_method | 부하 분산 방법입니다. 다음 알고리즘 중 하나입니다. * "라운드 로빈" * "WEIGHTED_RR" * "최소 연결" {#ibm-cloud-platform-discovery__ul_f4f_rzt_3hb} |
    | 관련 CI: cmdb_ci_lb_pool_member ||
    | 이름 | 다음으로 구성된 패턴 생성 이름: * 부하 분산 장치 이름 * 프로토콜의 유형 * 풀 구성원의 IP 주소 {#ibm-cloud-platform-discovery__ul_bxl_5cy_khb} |
    | object_id | 부하 분산 장치 풀 구성원 고유 식별자이며 다음으로 구성됩니다. * 구성원 ID * 수신기 ID {#ibm-cloud-platform-discovery__ul_tkx_xcy_khb} |
    | ip_address | 부하 분산 장치 구성원의 IP 주소입니다. |
    | server_id | IBM Cloud의 구성원 ID입니다. |
    | load_balancer | 관련 부하 분산 장치의 이름입니다. |
    | 관련 CI: cmdb_ci_lb_health_service ||
    | 이름 | 다음으로 구성된 패턴 생성 이름: * 부하 분산 장치 이름 * 프로토콜의 유형 * 자원 유형: 상태 검사 * 자원 ID {#ibm-cloud-platform-discovery__ul_k2w_1dy_khb} |
    | object_id | 상태 서비스 검사의 고유 식별자입니다. |
    | monitor_type | 상태 검사 유형입니다. 다음 중 하나입니다. * TCP * HTTP * HTTPS {#ibm-cloud-platform-discovery__ul_epn_lb5_3hb} |
    | timeout_sec | 상태 검사 응답을 기다리는 시간 제한(초)입니다. |
    | check_interval_sec | 상태 검사를 수행하는 간격(초)입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_o21_dlv_2hb}

IBM Cloud 위치 그룹에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_location_groups__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_cloud_location_group ||
    | 이름 | 위치 그룹을 식별하는 데 사용되는 설명이 포함된 이름입니다. |
    | object_id | 위치 그룹 기록의 ID입니다. |
    | locationGroupType 이름 | 위치 그룹 유형의 이름입니다. |
    | short_description | 사용자가 임의로 사용할 위치 그룹에 대한 작은 메모입니다. |
    | locationGroup 유형 ID | 위치 그룹 유형의 ID입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_location_groups}

IBM Cloud 네트워크에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_wlf_ybx_jhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_network ||
    | 이름 | VLAN 번호입니다. |
    | object_id | 네트워크 고유 식별자입니다. |
    | access_port_vlan | VLAN 번호입니다. |
    | is_external | 네트워크 공간 값입니다. 값은 다음 중 하나입니다. * network_space가 "공개"일 경우 예입니다. * network_space가 "PRIVATE"이면 False입니다. {#ibm-cloud-platform-discovery__ul_sz1_tjx_jhb} |
    | 상태 | 상태 값이 "사용 가능"입니다. |
    | 관련 CI: cmdb_ci_cloud_subnet ||
    | 이름 | 이름이며 "network_identifier/cidr"로 구성됩니다. |
    | object_id | 서브넷 고유 식별자입니다. |
    | subnet_mask | 서브넷의 넷마스크입니다. |
    | 게이트웨이 | 게이트웨이 IP 주소입니다. |
    | cidr | IP 주소 및 IP 라우팅 할당 방법: "network_identifier/cidr" |
    | 범주 | 서브넷 유형입니다. |
    | broadcast_address | 서브넷 브로드캐스트 주소입니다. |
    | available_ip_count | 서브넷에서 사용할 수 있는 IP 주소의 수입니다. |
    | 관련 CI: cmdb_ci_compute_security_group ||
    | 이름 | 보안 그룹 이름입니다. |
    | object_id | 보안 그룹 고유 식별자입니다. |
    | short_description | 쉽게 식별할 수 있도록 사용자가 제공하는 보안 그룹 설명입니다. |
    | 관련 CI: cmdb_ci_compute_security_group_rule ||
    | 이름 | 보안 그룹 규칙 object_id 필드와 값이 같은 필드입니다. |
    | object_id | 보안 그룹 규칙 고유 식별자입니다. |
    | created | CI가 생성된 날짜입니다. |
    | 방향 | 정보의 방향입니다. 다음 중 하나입니다. * 인바운드 * 아웃바운드 {#ibm-cloud-platform-discovery__ul_zqw_vny_jhb} |
    | Ethertype | Ethertype. 다음 중 하나입니다. * IPv4 * IPv6 {#ibm-cloud-platform-discovery__ul_jyf_zny_jhb} |
    | port_range_min | 규칙이 적용되는 범위의 첫 번째 포트입니다. |
    | port_range_max | 규칙이 적용되는 범위의 마지막 포트입니다. |
    | 프로토콜 | 규칙이 적용되는 프로토콜입니다. |
    | remote_group_id | 소스/대상 보안 그룹의 보안 그룹 ID입니다. 이는 이 규칙이 이 보안 그룹에 구성된 모든 IP 주소에 적용됨을 의미합니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_wlf_ybx_jhb}

IBM Cloud 조직 및 공간에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_vbc_2cx_jhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_cloud_org ||
    | 이름 | 클라우드 조직의 이름입니다. |
    | GUID | 조직의 고유 식별자입니다. |
    | URL | 조직의 고유한 URL입니다. |
    | billing_enabled | 조직에서 사용하는 청구 방법입니다. 다음 중 하나입니다. * 사용/(True) * 사용 안 함/(False) {#ibm-cloud-platform-discovery__ul_ngl_rpy_jhb} |
    | quota_definition_url | 조직에서 사용할 수 있는 자원입니다. |
    | spaces_url | 조직에 할당된 공간의 고유 URL입니다. |
    | operational_status | 조직의 운영 상태입니다. |
    | 관련 CI: cmdb_ci_cloud_space ||
    | 이름 | 공간의 고유 이름입니다. |
    | object_id | 공간 고유 식별자(guid)입니다. |
    | alllow_ssh | SSH를 통한 애플리케이션에 대한 액세스가 허용되거나 허용되지 않습니다. 부울이며 다음 중 하나입니다. * 예 * 아니오 {#ibm-cloud-platform-discovery__ul_dmk_yzn_lhb} |
    | URL | 메타데이터 설명에 있는 공간의 URL입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_vbc_2cx_jhb}

IBM Cloud 자원 그룹에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_ezd_1k1_xhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_resource_group ||
    | 이름 | 자원 그룹의 이름입니다. |
    | object_id | 자원 그룹의 고유 식별자입니다. |
    | quota_id | 자원 그룹과 연결된 할당량 ID를 식별하는 값입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_ezd_1k1_xhb}

IBM Cloud SSH 키에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_v5p_tdx_jhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_cloud_key_pair ||
    | 이름 | SSH 키를 식별하기 위한 이름입니다. |
    | object_id | SSH 키 기록의 ID입니다. |
    | 키 | SSH 키 기록입니다. |
    | finger_print | 더 긴 SSH 키를 인증하거나 조회하는 데 사용되는 짧은 바이트 시퀀스입니다. 이 값은 SSH 키를 추가하거나 수정할 때 자동으로 생성됩니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | 작성_date | SSH 키가 추가된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | modify_date | SSH 키가 수정된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | short_description | 쉽게 식별할 수 있도록 사용자가 제공하는 SSH 설명입니다. |
    | 관련 CI: cmdb_ci_ibm_datacenter ||
    | 이름 | 데이터센터의 이름입니다. |
    | region | 데이터센터가 있는 지역입니다. |
    | discovery_status | IBM 데이터센터에 대한 상태 정보입니다. |
    | sys_class_name | 데이터센터의 클래스 |
    | 관련 CI: cmdb_ci_cloud_service_account ||
    | 이름 | 클라우드 서비스 계정의 이름입니다. |
    | account_id | 이 클라우드 서비스 계정의 계정 ID입니다. |
    | discovery_credentials | 이 클라우드 서비스 계정에 대한 자격 증명입니다. |
    | datacenter_url | LDC(논리 데이터센터)를 채우는 데 사용되는 URL입니다. |
    | datacenter_type | 데이터센터의 유형입니다. 예: IBM 데이터센터 \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | 데이터센터 검색의 마지막 실행 상태입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_v5p_tdx_jhb}

IBM Cloud 저장소에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_zd3_wdx_jhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_storage_volume ||
    | 이름 | 다음에 사용되는 사용자 이름: * 비 EVault 저장소 볼륨에 액세스 * 자격 증명 모음 백업 시스템에 EVault 서버 에이전트 등록 {#ibm-cloud-platform-discovery__ul_cjk_4gd_khb} |
    | object_id | 저장소 계정 고유 식별자입니다. |
    | 크기 | 저장소 계정의 용량(기가바이트)입니다. |
    | size_bytes | 저장소 계정의 용량(바이트)입니다. |
    | 레이블 | 저장소 네트워크 자원의 이름입니다. |
    | storage_type | 저장소 유형에 대한 설명입니다. 예: NAS |
    | fqdn | 저장소 자원의 IP 주소 또는 전체 주소 도메인 이름입니다. |
    | 장치 | 저장소 볼륨과 연결된 장치의 고유 식별 번호입니다. |
    | 관련 CI: cmdb_ci_storage_vol_snapshot ||
    | 이름 | 저장소 네트워크 자원의 이름입니다. |
    | object_id | 저장소 고유 식별자입니다. |
    | 용량 | 스냅샷 볼륨의 용량(기가바이트)입니다. |
    | fqdn | 저장소 자원의 IP 주소 또는 전체 주소 도메인 이름입니다. |
    | 위치 | 저장소 볼륨이 있는 고유한 가용 영역입니다. |
    | 관련 CI: cmdb_ci_ibm_datacenter ||
    | 이름 | 데이터센터의 이름입니다. |
    | region | 데이터센터가 있는 지역입니다. |
    | discovery_status | IBM 데이터센터에 대한 상태 정보입니다. |
    | sys_class_name | 데이터센터의 클래스 |
    | 관련 CI: cmdb_ci_cloud_service_account ||
    | 이름 | 클라우드 서비스 계정의 이름입니다. |
    | account_id | 이 클라우드 서비스 계정의 계정 ID입니다. |
    | discovery_credentials | 이 클라우드 서비스 계정에 대한 자격 증명입니다. |
    | datacenter_url | LDC를 채우는 데 사용되는 URL입니다. |
    | datacenter_type | 데이터센터의 유형입니다. 예: IBM 데이터센터 \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | 데이터센터 검색의 마지막 실행 상태입니다. |
    | 관련 CI: cmdb_ci_availability_zone ||
    | 이름 | AZ(가용 영역)의 이름입니다. |
    | object_id | 이 자원의 고유 식별자입니다. |
    | short_description | 사용자가 제공하는 가용 영역에 대한 설명입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_zd3_wdx_jhb}

IBM Cloud 가상 서버에서 검색하는 자원
:   {#ibm-cloud-platform-discovery__table_njj_ydx_jhb__entry__2}

    | 필드 | 설명 |
    |-|-|
    | 메인 CI: cmdb_ci_vm_instance ||
    | 이름 | VM의 이름입니다. |
    | object_id | VM의 고유 식별자입니다. |
    | dns_domain | VM 도메인 서버 이름입니다. |
    | fqdn | VM IP 주소입니다. |
    | short_description | IBM 콘솔의 VM에 연결된 메모의 설명입니다. |
    | CPU | 이 VM에 할당된 CPU 코어의 수입니다. |
    | 메모리 | 이 VM에 할당된 메모리 크기입니다. |
    | 디스크 | 이 VM에 할당된 디스크의 수입니다. |
    | 상태 | VM의 실행 상태입니다. * 설정 -- API에서 '실행 중'으로 반환됩니다. * 해제 -- API에서 '중지됨'으로 반환됩니다. {#ibm-cloud-platform-discovery__ul_dyp_xt4_n3b} |
    | placement_group_id | 배치 그룹 ID입니다. |
    | Nic | NIC 수입니다. |
    | 관련 CI: cmdb_ci_nic ||
    | 이름 | 이름이며 다음으로 구성됩니다. * 부하 분산 장치 이름 * 포트 {#ibm-cloud-platform-discovery__ul_bxv_2dy_khb} |
    | object_id | NIC의 고유 식별자입니다. |
    | ip_address | NIC에 구성된 IP입니다. |
    | mac_address | NIC MAC 정보입니다. |
    | netmask | IP 주소를 서브넷으로 나누고 네트워크에서 사용할 수 있는 호스트를 지정하는 데 사용되는 마스크입니다. |
    | 상태 | NIC의 상태입니다. |
    | 관련 CI: cmdb_ci_endpoint_vnic ||
    | 이름 | VNIC 엔드포인트의 이름입니다. |
    | object_id | VNIC 엔드포인트의 고유 식별자입니다. |
    | 호스트 | 호스트 식별자입니다. |
    | 관련 CI: cmdb_ci_storage_volume ||
    | 이름 | 다음에 사용되는 사용자 이름: * 비 EVault 저장소 볼륨에 액세스 * 자격 증명 모음 백업 시스템에 EVault 서버 에이전트 등록 {#ibm-cloud-platform-discovery__ul_j1n_ktd_khb} |
    | object_id | 저장소 계정 고유 식별자입니다. |
    | 크기 | 저장소 계정의 용량(기가바이트)입니다. |
    | size_bytes | 저장소 계정의 용량(바이트)입니다. |
    | 레이블 | 저장소 네트워크 자원의 이름입니다. |
    | storage_type | 저장소 유형에 대한 설명입니다. 예: NAS |
    | fqdn | 저장소 자원의 IP 주소 또는 전체 주소 도메인 이름입니다. |
    | 장치 | 저장소 볼륨과 연결된 게스트의 고유 식별 번호입니다. |
    | 관련 CI: cmdb_ci_endpoint_nfs ||
    | 이름 | NFS 엔드포인트의 이름입니다. |
    | 호스트 | 호스트 식별자입니다. |
    | 프로토콜 | 적용된 프로토콜입니다. |
    | 유형 | NFS 엔드포인트 유형입니다. |
    | created | NFS 엔드포인트가 생성된 날짜입니다. |
    | 업데이트됨 | NFS 엔드포인트가 업데이트된 날짜입니다. |
    | discovery_source | 검색의 소스입니다. 예: ServiceWatch |
    | host_name | NFS 엔드포인트의 호스트 이름 |
    | 관련 CI: cmdb_ci_endpoint_iscsi ||
    | 호스트 | ISCSI 엔드포인트의 호스트 식별자입니다. |
    | 포트 | GCP iscsi가 VM에 연결하는 방법을 결정하는 포트입니다. |
    | 프로토콜 | 적용된 프로토콜입니다. |
    | 유형 | ISCSI 엔드포인트 유형 |
    | created | ISCSI 엔드포인트가 생성된 날짜입니다. |
    | 업데이트됨 | ISCSI 엔드포인트가 업데이트된 날짜입니다. |
    | discovery_source | 검색의 소스입니다. 예: ImportSet |
    | host_name | ISCSI 엔드포인트의 호스트 이름 |
    | 관련 CI: cmdb_ci_endpoint_block ||
    | 이름 | 블록 엔드포인트의 이름입니다. |
    | object_id | 블록 엔드포인트의 고유 식별자입니다. |
    | 호스트 | 호스트 식별자입니다. |
    | 관련 CI: cmdb_ci_os_template ||
    | 이름 | 이미지의 이름입니다. 예: 'CentOS 7.0-64 Minimal for VSI'. |
    | object_id | 이미지의 고유 식별자입니다. |
    | guest_os | 이미지에서 사용하는 OS입니다. 예: Linux |
    | root_device_type | 루트에서 사용하는 장치의 유형입니다. |
    | image_source | 이미지의 소스입니다. |
    | image_type | 이미지 유형입니다. |
    | infuse_key | 이미지를 인퓨즈하는 데 사용되는 키입니다. |
    | update_host_name | 이미지의 호스트 이름을 업데이트합니다. |
    | 자격 증명 | 이미지에 대한 자격 증명입니다. |
    | 버전 | OS 버전입니다. 예: '7.0-64 Minimal for VSI'. |
    | 관련 CI: cmdb_ci_cloud_key_pair ||
    | 이름 | 키(키 레이블)를 식별하기 위한 이름입니다. |
    | object_id | 키 기록의 ID입니다. |
    | 키 | 키 기록입니다. |
    | finger_print | 키를 인증하거나 조회하는 데 사용되는 짧은 바이트 시퀀스입니다. 이 값은 키를 추가하거나 수정할 때 자동으로 생성됩니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | 작성_date | 키가 추가된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | modify_date | 키가 수정된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | short_description | 쉽게 식별할 수 있도록 사용자가 제공하는 설명입니다. |
    | 관련 CI: cmdb_ci_compute_security_group ||
    | 이름 | 보안 그룹 이름입니다. |
    | object_id | 보안 그룹 고유 식별자입니다. |
    | short_description | 쉽게 식별할 수 있도록 사용자가 제공하는 보안 그룹 설명입니다. |
    | 관련 CI: cmdb_ci_endpoint_comp_security ||
    | 호스트 | 계산 보안 엔드포인트의 호스트 식별자입니다. |
    | 포트 | 계산 보안 엔드포인트의 고유 식별자입니다. |
    | 프로토콜 | 적용된 프로토콜입니다. |
    | 유형 | 계산 보안 엔드포인트의 유형입니다. |
    | created | 계산 보안 엔드포인트가 추가된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | 업데이트됨 | 계산 보안 엔드포인트가 수정된 날짜입니다. 읽기 전용입니다. 변경한 내용은 무시됩니다. |
    | discovery_source | 검색의 소스입니다. 예: 수동 입력. |
    | host_name | 계산 보안 엔드포인트의 호스트 이름입니다. |
    | 관련 CI: cmdb_ci_ibm_datacenter ||
    | 이름 | 데이터센터의 이름입니다. |
    | region | 데이터센터가 있는 지역입니다. |
    | discovery_status | IBM 데이터센터에 대한 상태 정보입니다. |
    | sys_class_name | 데이터센터의 클래스 |
    | 관련 CI: cmdb_ci_availability_zone ||
    | 이름 | AZ(가용 영역)의 이름입니다. |
    | object_id | 이 자원의 고유 식별자입니다. |
    | short_description | 사용자가 제공하는 가용 영역에 대한 설명입니다. |
    | 관련 CI: cmdb_ci_cloud_service_account ||
    | 이름 | 클라우드 서비스 계정의 이름입니다. |
    | account_id | 이 클라우드 서비스 계정의 계정 ID입니다. |
    | discovery_credentials | 이 클라우드 서비스 계정에 대한 자격 증명입니다. |
    | datacenter_url | LDC를 채우는 데 사용되는 URL입니다. |
    | datacenter_type | 데이터센터의 유형입니다. 예: IBM 데이터센터 \[cmdb_ci_ibm_datacenter\] |
    | datacenter_discovery_status | 데이터센터 검색의 마지막 실행 상태입니다. |
    [ ]

    {#ibm-cloud-platform-discovery__table_njj_ydx_jhb}

IBM Cloud 가상 서버 - 관련 항목 뷰
:

## CI 관계 {#ibm-cloud-platform-discovery__section_kzg_xwz_ghb}

이러한 관계는 IBM Cloud Platform 검색을 지원하기 위해 생성됩니다.

IBM Cloud 부하 분산 장치에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_vkt_ywd_rdb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: 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 |
    | 관련 CI: 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 |
    | 관련 CI: 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 |
    | 관련 CI: 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 |
    | 관련 CI: 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}

IBM Cloud 위치 그룹에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_e2b_t1b_xhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: 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}

IBM Cloud 네트워크에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_lpw_y2x_jhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: cmdb_ci_network |||
    | cmdb_ci_network | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_network | Contains::Contained by | cmdb_ci_cloud_subnet |
    | 관련 CI: 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}

IBM Cloud 자원 그룹에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_lmb_yk1_xhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: cmdb_ci_resource_group |||
    | cmdb_ci_resource_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    [ ]

    {#ibm-cloud-platform-discovery__table_lmb_yk1_xhb}

IBM Cloud SSH 키에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_b3t_2fx_jhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: 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}

IBM Cloud 저장소에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_u5s_gfx_jhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: cmdb_ci_storage_volume |||
    | cmdb_ci_storage_volume | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_volume | 프로비저닝됨::P rovisioned 시작 위치 | cmdb_ci_storage_vol_snapshot |
    | 관련 CI: cmdb_ci_storage_vol_snapshot |||
    | cmdb_ci_storage_vol_snapshot | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_vol_snapshot | Zone::Zone에 위치: | cmdb_ci_availability_zone |
    | 관련 CI: cmdb_ci_availability_zone |||
    | cmdb_ci_availability_zone | Contains::Contained by | cmdb_ci_storage_volume |
    [ ]

    {#ibm-cloud-platform-discovery__table_u5s_gfx_jhb}

IBM Cloud 가상 서버에서 검색하는 자원에 대한 관계
:   {#ibm-cloud-platform-discovery__table_s4m_3fx_jhb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 관련 CI: 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 |
    | 관련 CI: cmdb_ci_vm_instance |||
    | cmdb_ci_vm_instance | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_vm_instance | Located in::Houses | cmdb_ci_availability_zone |
    | cmdb_ci_vm_instance | 용도:사용자 | cmdb_ci_cloud_key_pair |
    | cmdb_ci_vm_instance | 포함:포함 기준 | cmdb_ci_nic |
    | cmdb_ci_vm_instance | 엔드포인트 | cmdb_ci_nic |
    | 관련 CI: cmdb_ci_availability_zone |||
    | cmdb_ci_availability_zone | Hosted on::Hosts | cmdb_ci_vm_instance |
    | 관련 CI: cmdb_ci_nic |||
    | cmdb_ci_nic | Hosted on::Hosts | cmdb_ci_vm_instance |
    | 관련 CI: cmdb_ci_os_template |||
    | cmdb_ci_os_template | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_os_template | 프로비저닝됨::P rovisioned by | cmdb_ci_vm_instance |
    | 관련 CI: cmdb_ci_compute_security_group |||
    | cmdb_ci_compute_security_group | Hosted on::Hosts | cmdb_ci_cloud_service_account |
    | cmdb_ci_compute_security_group | Implement::Implemented from | cmdb_ci_vm_instance |
    | 관련 CI: cmdb_ci_storage_volume |||
    | cmdb_ci_storage_volume | Hosted on::Hosts | cmdb_ci_ibm_datacenter |
    | cmdb_ci_storage_volume | Implement::Implemented from | cmdb_ci_vm_instance |
    | 관련 CI: cmdb_ci_cloud_key_pair |||
    | cmdb_ci_cloud_key_pair | 호스팅 위치:호스트 | cmdb_ci_cloud_service_account |
    [ ]

    {#ibm-cloud-platform-discovery__table_s4m_3fx_jhb}

가상 머신(VM) 인스턴스에 대해 검색된 관계
:   {#ibm-cloud-platform-discovery__table_vdw_x45_3mb__entry__3}

    | CI | 관계 | CI |
    |-|-|-|
    | 서버 \[cmdb_ci_server\] | Virtualized by:: 가상화 | 가상 머신 인스턴스 \[cmdb_ci_instance\] |
    [ ]

    {#ibm-cloud-platform-discovery__table_vdw_x45_3mb}

## 태그 기반 검색 중 서비스 매핑에서 수집하는 데이터 {#ibm-cloud-platform-discovery__section_mtq_js983ubg_ppb}

서비스 매핑 은 태그 기반 검색을 사용하여 클라우드 구성요소를 포함한 서비스 인스턴스 맵을 생성합니다. 서비스 매핑 애플리케이션은 사전 구성된 다음 CI 관계와 함께 제공되며, 이 관계는 태그 기반 검색에 사용됩니다. 이 CI 관계는 ServiceNow Store에서 1.0.68 릴리스부터 사용할 수 있습니다. {#ibm-cloud-platform-discovery__id_yqp_xhy_qpb__entry__3}

| CI | 관계 | CI |
|-|-|-|
| 구성 항목 \[cmdb_ci\] | Hosted on::Hosts | 논리 데이터센터 \[cmdb_ci_logical_datacenter\] |
| 논리 데이터센터 \[cmdb_ci_logical_datacenter\] | Hosted on::Hosts | 클라우드 서비스 계정 \[cmdb_ci_cloud_service_account\] |
[ ]

{#ibm-cloud-platform-discovery__id_yqp_xhy_qpb}

## 문제 해결 {#ibm-cloud-platform-discovery__section_sf2_nsj_yhb}

매핑 프로세스가 예상대로 진행되지 않으면 다음 제안을 따릅니다.{#ibm-cloud-platform-discovery__table_ggn_ypj_yhb__entry__3}

| 증상 | 원인 | 솔루션 |
|-|-|-|
| 검색에 실패했습니다. 검색 메시지에는 REST 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. | 배포에는 REST 호출 응답을 보내는 CI가 많습니다. MID 서버에서는 mid.sa.cloud.request_timeout 매개변수로 제어되는 시간 제한을 초과하지 않고 REST 호출 응답을 처리할 수 없습니다. | 기본적으로 mid.sa.cloud.request_timeout 매개변수는 3만 밀리초로 설정되어 있습니다. 관련 MID 서버에 대한 이 매개변수의 값을 늘리고 검색을 다시 실행합니다. 주: 관련 MID 서버의 구성 매개변수 관련 목록에 이 매개변수가 표시되지 않으면 추가해야 할 수 있습니다. |
| 세션 디버그 중에 패턴 디자이너가 실패합니다. 패턴 디자이너 메시지에는 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. | 패턴 디버깅 중(검색 중 아님) 시간 초과로 인해 패턴 디자이너가 실패합니다. | 기본적으로 sa.debugger.max_timeout 매개변수는 240초로 설정되어 있습니다. 관련 MID 서버에 대한 이 매개변수의 값을 늘립니다. |
[ ]

{#ibm-cloud-platform-discovery__table_ggn_ypj_yhb}

