Beispielnutzlast für BYOL

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Eine Beispielnutzlast, die die Tabelle „Softwareinstallation [cmdb_sam_sw_install]“ in ausfüllt ServiceNowInstanz mit Discovery-Daten, die vom BYOL-Lizenzierungsmodell erfasst wurden.

    Bestimmte Entitäten müssen ausgefüllt werden, damit BYOL mit der Software-Asset-Verbindung als Discovery-Quelle einer Drittpartei arbeiten kann. Die Beziehung zwischen diesen Entitäten ist entscheidend, damit BYOL reibungslos mit Software-Asset-Verbindungen funktioniert. Beispielsweise unterscheiden sich einige Werte, die zum Ausfüllen von Cloud-Hosts erforderlich sind, für AWSUnd Azure. Obwohl die Objekt-ID und der Name des Hosts für beide erforderlich sind AWSUnd Azure, Für AWS, Die Anzahl der CPU-Kerne ist für erforderlich Azure, Der Hosttypwert ist erforderlich. Details zu Entitäten und ihren Beziehungen finden Sie unter Entitäten für BYOLUnd Beziehungen zwischen den Entitäten für BYOL.

    In diesem Beispiel ist der Cloud-Service-Account die oberste Entität. Alle anderen Entitäten, die in der Tabelle „Entitäten für BYOL“ aufgeführt sind, sind abhängige Entitäten des Cloud-Service-Accounts. 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 ihrem übergeordneten Element in derselben Nutzlast erwähnt werden. Beispiel: Wenn Sie einen erstellen möchten AWSRechenzentrum im Cloud-Service-Account müssen Sie die Cloud-Service-Account-Entität in dieselbe Nutzlast aufnehmen, auch wenn Cloud-Service-Account bereits in Ihrer Instanz vorhanden ist. Gleichermaßen müssen Sie beim Erstellen von Softwareinstallationen alle abhängigen Entitäten für Softwareinstallationen über die gesamte Hierarchie in derselben Nutzlast einschließen.

    Entitäten für BYOL

    Entitäten Pflichtfelder
    Cloud-Serviceaccount [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:
    Nicht erforderlich für freigegebene VMs.
    • Object_ID: Eindeutiger Bezeichner
    • Name: Name des Hosts
    • Host_type: Hosttyp für Azure. Beispiel: DSv3-Type1 (für AzureNur Hosts).
    • cpu_Core-count: Gesamtanzahl der CPU-Kerne des Hosts (für AWSNur Hosts).
    VM-Instanzen [cmdb_ci_vm_instance] Object_ID: Eindeutiger Bezeichner
    Computer [cmdb_ci_Computer]
    • Name: Name der virtuellen Maschine
    • cpu_count: CPU-Anzahl der virtuellen Maschine
    • cpu_Core_count: Anzahl der CPU-Kerne der virtuellen Maschine
    • cpu_Core_Thread: Anzahl der CPU-Core-Threads der virtuellen Maschine
    • Virtuell: 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 Lizenz enthalten)
    • cloud_license_type_source: Quelle, aus der der Cloud-Lizenztyp ausgefüllt wird. Der Wert ist für Software-Asset-Verbindungen 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::Hosts AWS/Azure-Rechenzentren Cloud-Serviceaccount
    AWS/Azure-Rechenzentren: Cloud-Hosts Gehostet auf::Hosts Cloud-Hosts AWS/Azure-Rechenzentren
    AWS/Azure-Rechenzentren: VM-Instanzen Gehostet auf::Hosts Instanzen der virtuellen Maschine AWS/Azure-Rechenzentren
    Cloud-Hosts: Vm-Instanzen Wird ausgeführt am::Run Instanzen der virtuellen Maschine Cloud-Hosts
    Computer: Instanzen Der Virtuellen Maschine Virtualisiert von::virtualisiert Computer Instanzen der virtuellen Maschine

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

    In dieser Beispielnutzlast wird ein dedizierter Computerdatensatz übergeben. Dieser Computerdatensatz hat ein zugehöriges Array, das alle Softwareinstallationen enthält. Eine VM-Instanz entspricht dem Computerdatensatz. Cloud-Host ist der dedizierte Host, auf dem sich die virtuelle Maschine befindet, und der AWSDas Rechenzentrum muss im Cloud-Service-Account erstellt werden. Wenn Sie über mehrere dedizierte virtuelle Computer verfügen, können Sie eine REST-API für jede dedizierte virtuelle Maschine senden. Wenn Sie beispielsweise 50 dedizierte VMs haben, müssen Sie 50 REST-API-Aufrufe senden, die jeweils dieselbe Nutzlast haben. Alle Softwareinstallationen auf einer dedizierten VM können in einer einzelnen 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);