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

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# 仮想サーバーの応答プロセッサーの例

# 仮想サーバーの応答プロセッサーの例 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：5分

デフォルトにより クラウドプロビジョニングとガバナンス で使用可能な Create_Virtual_Server_Response_Processor スクリプトは、AWS 仮想マシン CI の作成を処理する応答プロセッサーです。

## 仮想サーバーの作成 {#response-processor-example__section_q5y_xt3_v2b}

Create_Virtual_Server_Response_Processor リソースプロセッサースクリプトは、デフォルトにより仮想サーバーリソースブロックで使用できます。そのジョブは、新しい仮想サーバーがプロビジョニングされるときに、仮想マシンインスタンス \[cmdb_ci_vm_instance\] テーブルに仮想サーバーレコードを作成することです。  
すべての応答プロセッサーには、共通パラメーターを含む次の 1 行目があります。

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

これにより、クラウドプロバイダからの応答と、システムが作成できる新しい CI に必要な重要な情報 (アカウント ID など) が表示されます。これらのパラメーターはすべて、すべての応答プロセッサーに必要です。

10 行目は、応答を JSON に解析して、システムが処理できるようにしています。この情報は、vmResponse 変数に保持されます。  


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

応答プロセッサーを作成または編集する場合は常に、CI タイプに必要な入力を把握しておく必要があります。11 行目は、必要な入力の 1 つであるハードウェア ID を処理します。この入力は CMDB レコードに必要です。  


    var hardwareId = vmResponse.hardwareId;

39 行目は、情報を CMDB に入れることができるように、システムが新しい仮想サーバーおよび関連する CI を識別するために必要な情報を示しています。この場合、サービスアカウントオブジェクト ID は仮想サーバーに関連付けられたアカウントを識別し、データセンターオブジェクト ID は仮想サーバーが配置されているデータセンターを識別し、仮想マシンインスタンスオブジェクト ID は仮想サーバー自体を識別します。この識別コードブロックは、重複する CI の作成を防止します。  


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

属性は、cmdb_ci_vm_instance テーブル上のフィールドに入力されます。これらの属性は、61 行目で定義されています。  


    "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
    },

他の CI への参照も応答プロセッサーに含めることができます。この場合、仮想サーバーの基になっている OS テンプレートは、まずサービスアカウントとデータセンターのオブジェクト ID、および実際の OS テンプレートを識別することで識別されます。  


    "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
            }
          }
        },

次のコードブロックは、OS イメージのオブジェクト ID を属性リストに追加して、この情報を仮想サーバーの CMDB レコードに入力できるようにします。  


    "attributes": {
      "object_id": imageIdTrim
    }

このコードブロックは、計算テンプレート (ハードウェアタイプ) で追加の識別を実行し、それを属性に追加します。  


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

追加のコードセクションでは、ネットワークインターフェイスとの関係を作成し、仮想サーバーに接続されているストレージを識別します。

この必須コードブロックは、データを CMDB にプッシュして、JSON 文字列を返します。  


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


