CMDB データ取り込み API

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む8読むのに数分
  • CMDB データ取り込み API は、オブジェクトのアレイをインポートセットテーブルにバッチ取り込みできるエンドポイントを提供します。

    警告:
    この API は推奨されなくなりました。拡張性と安定性が向上した同じ機能を使用するには、インポートセット - POST /now/import/{stagingTableName}/insertMultiple エンドポイントを使用します。リリース以降、QuebecCMDB データ取り込み API の使用は、代わりにインポートセット - insertMultiple エンドポイントを使用するように移行する必要があります。

    また、この API はデフォルトでは zboot インスタンスでは機能しません。

    この API は 構成管理データベース (CMDB) (com.snc.cmdb) プラグインによってアクティブ化され、cmdb_import_api_admin ロールを必要とします。

    CMDB データ取り込み - POST /cmdb/ingest/{data_source_sys_id}

    渡された sys_id で識別されるデータソースレコードに関連付けられたインポートセットテーブルにレコードを挿入します。

    警告:
    この API は推奨されなくなりました。拡張性と安定性が向上した同じ機能を使用するには、インポートセット - POST /now/import/{stagingTableName}/insertMultiple エンドポイントを使用します。リリース以降、QuebecCMDB データ取り込み API の使用は、代わりにインポートセット - insertMultiple エンドポイントを使用するように移行する必要があります。

    また、この API はデフォルトでは zboot インスタンスでは機能しません。

    要求本文には、インポートセットテーブルに挿入するオブジェクト (ペイロード) の JSON アレイが含まれている必要があります。各オブジェクトはテーブル内の行に相当し、名前と値の各ペアは列に相当します。JSON ペイロードは、「u_」プリフィックスのないインポートセットのフィールド名を利用する必要があります。たとえば、要求本文のペイロードのフィールド名「u_matching_record」は「matching_record」である必要があります。インポートセットテーブルが存在する場合、エンドポイントは既存のインポートセットテーブルに行 (オブジェクト) を追加します。重複のチェックや既存のレコードの更新は実行されません。

    最初にアプリケーションを構築する場合は、このエンドポイントを呼び出す前に、関連するデータソースレコードをインスタンスに作成する必要があります。このエンドポイントを使用して既存のインポートセットテーブルにレコードを追加するだけの場合は、データソースレコードを作成する必要はありませんが、その sys_id を知っている必要があります。データソースレコードには、指定されたペイロードを挿入するインポートセットテーブルが記述されます。このテーブルは、インポートセット行 [sys_import_set_row] テーブルを拡張する必要があります。また、データソースを [添付ファイル] に設定し、形式を [JSON] に設定する必要があります。データ・ソースについて詳しくは、 データ・ソースを参照してください。

    データソースレコードで定義されたインポートセットテーブルが存在しない場合、エンドポイントは渡されたペイロードをデータソースレコードに添付します。初期インポートセットテーブルを作成するには、データをインポートセットテーブルに手動でインポートする必要があります。データをインポートするには、関連するデータソースフォームで、[関連リンク] セクションの [20 件のレコードのテストロード] または [すべてのレコードをロード] リンクをクリックします。インポートセットテーブルが作成されると、このエンドポイントを使用してテーブルに列を追加することはできなくなります。インポートセットテーブルに存在しない名前と値のペアが後で渡された場合、それらは警告なしで無視されます。インポートセットテーブル内の列を変更する必要がある場合は、手動でテーブルに追加できます。インポートセットテーブルを削除するか名前を変更し、新しいペイロードを使用してエンドポイントを再度呼び出すこともできます。

    このエンドポイントにアクセスするには、cmdb_import_api_admin ロールが必要です。

    URL 形式

    バージョニングされた URL:/api/now/{api_version}/cmdb/ingest/{data_source_sys_id}

    デフォルトの URL:/api/now/cmdb/ingest/{data_source_sys_id}

    サポートされている要求パラメーター

    表 : 1. パスパラメーター
    名前 説明
    api_version オプションアクセスするエンドポイントのバージョン。たとえば、v1v2。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。

    データタイプ:文字列

    data_source_sys_id データソースレコードの sys_id。
    表 : 2. クエリパラメーター
    名前 説明
    なし
    表 : 3. 要求本文パラメーター (XML または JSON)
    名前 説明
    アレイ 関連するインポートセットテーブルに追加するデータを記述するオブジェクトの自由形式のアレイ。アレイ内の各オブジェクトは、インポートセットテーブルの行を定義し、名前と値の各ペアは列を定義します。
    注:
    このアレイには、"{\"records\":[{\"hostname\": \"Hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Model Id"},{\"vendor\": \"ABC Co\"}]}" などの名前を付ける必要があります。

    ヘッダー

    次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 4. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml

    デフォルト: application/json

    Content-Type 要求本文のデータ形式。サポートされるタイプ:application/json または application/xml

    デフォルト: application/json

    表 : 5. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 6. ステータスコード
    ステータスコード 説明
    201 作成されました。添付ファイルがデータソースに追加されました。
    202 受け入れ済み。インポートセットテーブルに行が追加されました。
    400 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。
    404 見つかりません。要求アイテムが見つかりませんでした。
    409 競合。添付ファイルはデータソースに既に存在します。
    500 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。
    501 実装されていません。要求形式がサポートされていません。

    応答本文のパラメーター (JSON または XML)

    名前 説明
    error 発生したエラーを説明します。

    データタイプ:オブジェクト

    "error": {
      "details": "String",
      "message": "String"
    }
    error.details エラーに関する追加情報。

    データタイプ:文字列

    error.message エラーを説明するメッセージ。

    データタイプ:文字列

    import_set ペイロードが追加されたインポートセットテーブルの名前。

    データタイプ:文字列

    staged_row_count インポートセットテーブルに追加された行の数。

    データタイプ:数値

    staging_table ペイロードのステージングに使用されるデータソースレコードの名前。

    データタイプ:文字列

    status エラーステータス。

    データタイプ:文字列

    サンプル cURL 要求

    curl "instance.service-now.com/api/now/cmdb/ingest/4dd9686d1b9800103d374087bc4bcb3d" \
    --request POST \
    --header "Accept: application/json" \
    --header "Content-Type:application/json" \
    --data "{\"records\":[{\"hostname\": \"Hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Model 5100"},{\"vendor\": \"ABC Co\"},
    {\"hostname\": \"Hostname2\", \"serialnumber\": \"3adb3873-7fc5-564d-8844-e7769e4d6ded\", \"model\": \"Model 5200"},{\"vendor\": \"ACME Co\"}]}"
    --user "username":"password"

    成功応答:

    {
      "result": {
        "staged_row_count": 2,
        "import_set": "ISET0010010",
        "staging_table": "sn_my_demo_integra_demo_data_source_01"
      }
    }