---
sourceDocument: Yokohama IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/yokohama/it-operations-management

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Beispiel für den Antwortprozessor des virtuellen Servers

# Beispiel für den Antwortprozessor des virtuellen Servers {#ariaid-title1}

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

Die Create_Virtual_Server_Response_ProcessorSkript, das standardmäßig in verfügbar ist Cloud Provisioning and Governance, Ist der Antwortprozessor, der die Erstellung von AWS-VM-CIs verarbeitet.

## Erstellen Sie Einen Virtuellen Server {#response-processor-example__section_q5y_xt3_v2b}

Das Create_Virtual_Server_Response_Processor-Ressourcenprozessorskript ist standardmäßig im Ressourcenblock des virtuellen Servers verfügbar. Seine Aufgabe besteht darin, einen virtuellen Server-Datensatz in der Tabelle „VM-Instanz" \[cmdb_ci_vm_instance\] zu erstellen, wenn ein neuer virtueller Server bereitgestellt wird.  
Alle Antwortprozessoren haben diese erste Zeile mit diesen allgemeinen Parametern:

    function processResponse(response, cloudServiceAccountId, ldc, correlationId,step, requestorContext) {

Dadurch werden die Antwort des Cloud-Providers und die wichtigen Informationen wie die Account-ID eingeholt, die für das neue CI erforderlich sind, das das System erstellen kann. Alle diese Parameter sind für alle Antwortprozessoren erforderlich.

Zeile 10 analysiert die Antwort in JSON, damit das System sie verarbeiten kann. Die Informationen werden in der Variablen „vmResponse" gespeichert:  


    var vmResponse = global.JSON.parse(response);

Wenn Sie einen Antwortprozessor erstellen oder bearbeiten, müssen Sie wissen, welche Eingaben für den CI-Typ erforderlich sind. Zeile 11 verarbeitet eine der erforderlichen Eingaben, die Hardware-ID, die der CMDB-Datensatz erfordert:  


    var hardwareId = vmResponse.hardwareId;

Zeile 39 zeigt die Informationen an, die das System benötigt, um den neuen virtuellen Server und zugehörige CIs zu identifizieren, damit die Informationen in die CMDB eingefügt werden können. In diesem Fall identifiziert die Objekt-ID des Service-Accounts den Account, der dem virtuellen Server zugeordnet ist, die Objekt-ID des Rechenzentrums identifiziert das Rechenzentrum, in dem sich der virtuelle Server befindet, und die Objekt-ID der VM-Instanz identifiziert den virtuellen Server selbst. Dieser Identifizierungscodeblock verhindert die Erstellung doppelter CIs.  


    var vmInfo = {
        "cmdb_ci_vm_instance": {
          "validator": "virtual_machine_create_update_validator",
          "validator_overrides": {},
          "identification": {
            "cmdb_ci_cloud_service_account": {
              "criterion": {
                "object_id": cloudServiceAccountId
              }
            },
            "cmdb_ci_aws_datacenter": {
              "criterion": {
                "object_id": ldc
              }
            },
            "cmdb_ci_vm_instance": {
              "criterion": {
                "object_id": vmResponse.nodeId
              }
            }
          },

Attribute werden in die Felder in der cmdb_ci_vm_instance-Tabelle ausgefüllt. Diese Attribute sind in Zeile 61 definiert:  


    "attributes": {
      "name": vmResponse.nodeName,
      "object_id": vmResponse.nodeId,
      "state": status_map[vmResponse.state],
      "dns_suffix": vmResponse.dnsSuffix,
      "cpus": vmCPUs,
      "memory": vmMemory,
      "disks": vmResponse.volumes.length,
      "disks_size": "",
      "nics": vmResponse.networkInterfaces.length,
      "terminated_on": "",
      "termination_protection": "",
      "ip_address": vmPubIPAddr,
      "assigned_to": reqContext.userId,
      "assignment_group": reqContext.groupId
    },

Verweise auf andere CIs können auch in den Antwortprozessor aufgenommen werden. In diesem Fall wird die BS-Vorlage, auf der der virtuelle Server basiert, identifiziert, indem zuerst die Objekt-ID des Service-Accounts und des Rechenzentrums zusammen mit der tatsächlichen BS-Vorlage identifiziert wird.  


    "references": {
      "cmdb_ci_os_template": {
        "identification": {
          "cmdb_ci_cloud_service_account": {
            "criterion": {
              "object_id": cloudServiceAccountId
            }
          },
          "cmdb_ci_aws_datacenter": {
            "criterion": {
              "object_id": ldc
            }
          },
          "cmdb_ci_os_template": {
            "criterion": {
              "object_id": imageIdTrim
            }
          }
        },

Der folgende Codeblock fügt der Attributliste die Objekt-ID des BS-Images hinzu, damit diese Informationen in den CMDB-Datensatz des virtuellen Servers eingefügt werden können.  


    "attributes": {
      "object_id": imageIdTrim
    }

Dieser Codeblock führt eine zusätzliche Identifizierung der Compute-Vorlage (Hardwaretyp) durch und fügt sie dann den Attributen hinzu:  


    "cmdb_ci_compute_template": {
      "identification": {
        "cmdb_ci_cloud_service_account": {
          "criterion": {
            "object_id": cloudServiceAccountId
          }
        },
        "cmdb_ci_aws_datacenter": {
          "criterion": {
            "object_id": ldc
          }
        },
        "cmdb_ci_compute_template": {
          "criterion": {
            "object_id": vmResponse.hardwareId
          }
        }
      },
      "attributes": {
        "object_id": vmResponse.hardwareId,
        "name": vmResponse.hardwareId
      }
    }

Zusätzliche Codeabschnitte stellen die Beziehung zu Netzwerkschnittstellen her und identifizieren alle an den virtuellen Server angehängten Speicher.

Dieser obligatorische Codeblock sendet die Daten an die CMDB und gibt die JSON-Zeichenfolge zurück:  


    cloudModelString.push(vmInfo);
    return global.JSON.stringify(cloudModelString);


