Beispielnutzlast für BYOL

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 3 Minuten Lesedauer
  • Beispielnutzlast, die die Tabelle „Softwareinstallation“ [cmdb_sam_sw_install] in der Instanz ServiceNow mit Discovery-Daten füllt, die vom BYOL-Lizenzierungsmodell gesammelt wurden.

    Bestimmte Entitäten müssen ausgefüllt werden, damit BYOL mit der Software-Asset-Verbindung als Drittpartei-Discovery-Quelle funktioniert. Die Beziehung zwischen diesen Entitäten ist entscheidend dafür, dass BYOL mit Software-Asset-Verbindungen reibungslos funktioniert. Beispielsweise unterscheiden sich einige Werte, die zum Ausfüllen von Cloud-Hosts erforderlich sind, für AWS und Azure. Obwohl die Objekt-ID und der Name des Hosts sowohl für AWS als auch für [ Azureerforderlich sind, ist für AWSdie Anzahl der CPU-Kerne und für Azureder Wert des Hosttyps erforderlich. Einzelheiten zu Entitäten und ihren Beziehungen finden Sie unter Entitäten für BYOL und Beziehungen zwischen den Entitäten für BYOL.

    In diesem Beispiel ist der Cloud-Serviceaccount die oberste Entität. Alle anderen in der Tabelle „Entitäten für BYOL“ aufgeführten Entitäten sind abhängige Entitäten des Cloud-Servicekontos. Wenn eine Entität als abhängige Entität markiert ist, müssen die übergeordnete Entität und die Beziehung zwischen dieser Entität und dem übergeordneten Element in derselben Nutzlast erwähnt werden. Wenn Sie beispielsweise ein Rechenzentrum AWS für ein Cloud-Servicekonto erstellen möchten, müssen Sie die Entität „Cloud-Servicekonto“ in dieselbe Nutzlast aufnehmen. auch wenn das Cloud-Servicekonto in Ihrer Instanz bereits vorhanden ist. Ebenso müssen Sie beim Erstellen von Softwareinstallationen alle abhängigen Entitäten für Softwareinstallationen in der gesamten Hierarchie in dieselbe Nutzlast aufnehmen.

    Entitäten für BYOL

    Entitäten Pflichtfelder
    Cloud-Servicekonto [cmdb_ci_cloud_service_account] account_id: Eindeutiger Bezeichner
    AWS Rechenzentren [cmdb_ci_aws_datacenter] object_id: Eindeutiger Bezeichner
    Azure Rechenzentren [cmdb_ci_azure_datacenter] object_id: Eindeutiger Bezeichner
    Cloud-Hosts [cmdb_ci_cloud_host]
    Hinweis:
    Für freigegebene VMs nicht erforderlich.
    • object_id: Eindeutiger Bezeichner
    • name: Name des Hosts
    • host_type: Hosttyp für Azure. Beispiel: DSv3-Type1 (nur für Azure -Hosts).
    • cpu_core-count: Gesamtanzahl der CPU-Kerne des Hosts (nur für AWS Hosts).
    Instanzen der virtuellen Maschine [cmdb_ci_vm_instance] object_id: Eindeutiger Bezeichner
    Computer [cmdb_ci_computer]
    • Name: Name des virtuellen Computers
    • cpu_count: CPU-Anzahl der VM
    • cpu_core_count: Anzahl der CPU-Kerne des virtuellen Computers
    • cpu_core_thread: Anzahl der CPU-Core-Threads des virtuellen Computers
    • virtual: Gibt an, ob der Computer eine VM ist (Immer auf „wahr“ festgelegt)

    Softwareinstallationen [cmdb_sam_sw_install]

    Hinweis:
    „Softwareinstallationen“ [cmdb_sam_sw_install] ist ein zugehöriger Eintrag für Computer [cmdb_ci_computer].
    • Publisher
    • Version
    • display_name
    • cloud_license_type: Lizenztyp der Cloud-Installation (BYOL oder enthalten in Lizenz)
    • cloud_license_type_source: Quelle, aus der der Cloud-Lizenztyp ausgefüllt wird. Für Software-Asset-Verbindungen ist der Wert auf third_party_integration festgelegt.

    Beziehungen zwischen den Entitäten für BYOL

    Entitätsbeziehungen Typ Übergeordnet Untergeordnetes Element
    AWS/Azure-Rechenzentren – Cloud-Service-Account Gehostet auf::Hostet AWS/Azure-Rechenzentren Cloud-Servicekonto
    AWS/Azure-Rechenzentren – Cloud-Hosts Gehostet auf::Hostet Cloud-Hosts AWS/Azure-Rechenzentren
    AWS/Azure-Rechenzentren – Instanzen der virtuellen Maschine Gehostet auf::Hostet Instanzen der virtuellen Maschine AWS/Azure-Rechenzentren
    Cloud-Hosts: VM-Instanzen Wird ausgeführt auf::Wird ausgeführt Instanzen der virtuellen Maschine Cloud-Hosts
    Computer - VM-Instanzen Virtualisiert von::Virtualisiert Computer Instanzen der virtuellen Maschine

    Beispielnutzlast für Computer und Installationen für dedizierte VM (ähnlich für AWS und Azure)

    In dieser Beispielnutzlast wird ein dedizierter Computerdatensatz übergeben. Dieser Computerdatensatz verfügt über ein zugehöriges Array, das alle Softwareinstallationen enthält. Eine VM-Instanz entspricht dem Computerdatensatz. Der Cloud-Host ist der dedizierte Host, auf dem sich der virtuelle Computer befindet, und das Rechenzentrum AWS muss im Cloud-Servicekonto erstellt werden. Wenn Sie über mehrere dedizierte virtuelle Maschinen verfügen, können Sie für jede dedizierte virtuelle Maschine eine REST API senden. Wenn Sie beispielsweise 50 dedizierte VMs haben, müssen Sie 50 REST API-Aufrufe mit jeweils derselben Nutzlast senden. Alle Softwareinstallationen auf einer dedizierten VM können in einer einzigen Nutzlast im zugehörigen Array gesendet werden.

    var payload = { 
    
      'items': [{ 
    
        'className': 'cmdb_ci_computer', 
    
        'values': { 
    
          'name': 'Comp - Dedicated AWS - 1', 
    
          'cpu_count': 1, 
    
          'cpu_core_count': 4, 
    
          'cpu_core_thread': 1, 
    
          'virtual': true 
    
        }, 
    
        'related': [{ 
    
          'className': 'cmdb_sam_sw_install', 
    
          'values': { 
    
            'publisher': 'Microsoft', 
    
            'display_name': 'SQL Server', 
    
            'version': '2017', 
    
            'cloud_license_type': 'BYOL', 
    
            'cloud_license_type_source': 'third_party_integration' 
    
          } 
    
        }] 
    
      }, { 
    
        'className': 'cmdb_ci_vm_instance', 
    
        'values': { 
    
          'object_id': 'sample_object_id_aws_vm_dedicated', 
    
          'name': 'VM Dedicated AWS - 1', 
    
        } 
    
      }, { 
    
        'className': 'cmdb_ci_cloud_host', 
    
        'values': { 
    
          'object_id': 'sample_object_id_aws_host', 
    
          'name': 'AWS Dedicated Host - 1', 
    
          'cpu_core_count': 32 
    
        } 
    
      }, { 
    
        'className': 'cmdb_ci_aws_datacenter', 
    
        'values': { 
    
          'object_id': 'sample_object_id_aws_dc', 
    
          'name': 'AWS DataCenter - 1' 
    
        } 
    
      }, { 
    
        'className': 'cmdb_ci_cloud_service_account', 
    
        'values': { 
    
          'account_id': 'sample_account_id_aws_service_account', 
    
          'name': 'Cloud Service Account AWS - 1' 
    
        } 
    
      }], 
    
      'relations': [{ 
    
          'type': 'Virtualized by::Virtualizes', 
    
          'parent': 0, 
    
          'child': 1 
    
        }, { 
    
          'type': 'Runs on::Runs', 
    
          'parent': 1, 
    
          'child': 2 
    
        }, 
    
        { 
    
          'type': 'Hosted on::Hosts', 
    
          'parent': 2, 
    
          'child': 3 
    
        }, { 
    
          'type': 'Hosted on::Hosts', 
    
          'parent': 3, 
    
          'child': 4 
    
        } 
    
      ] 
    
    } 
    
     
     var jsonUntil = new JSON(); 
    
    var input = jsonUntil.encode(payload); 
    
    gs.info("Input: " + input.toString()); 
    
    var options = { 
    
      "partial_payloads": false, 
    
      "deduplicate_payloads": true 
    
    }; 
    
    var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCIEnhanced('ServiceNow', input, options); 
    
    gs.print("Output:" + output);