ServiceNow CLI
ServiceNow CLI は、ローカルシステムからインスタンス操作を実行できるコマンドラインインターフェイスです。CLI を拡張して、アプリケーションのニーズを満たす新しいコマンドを含めることができます。
利点
ServiceNow CLI では次のことができます。
- インスタンス内のレコードに対して基本的な CRUD 操作を実行します。
- カスタムコンポーネントを開発し、インスタンスに展開して UI をカスタマイズします。
- コマンドラインからカスタムアプリケーションを管理できるようにするカスタムコマンドを作成します。
- スクリプトで ServiceNow CLI を使用すると、セットアップタスクと運用アクティビティが簡素化されます。
アーキテクチャ
コマンドは、接続先のインスタンスのテーブルに保存されます。ServiceNow CLI がインスタンスに接続すると、そのインスタンスでサポートされているすべての利用可能なコマンドを受け取ります。
コマンドは、非同期で実行される REST エンドポイントにマッピングされます。詳細については、「ServiceNow CLI でのカスタムコマンドの作成」を参照してください。
ServiceNow CLI のアクティブ化
ServiceNow Store から要求することで、ServiceNow CLI をインストールします。 ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。
構成ファイル
ServiceNow CLI は、デフォルトでは次のパスのホームディレクトリに格納される config.json ファイルにプロファイル情報を格納します。
- Linux および Mac:~/.snc/config.json
- Windows:%USERPROFILE%\.snc\config.json
CLI はこのファイルを使用して、インスタンスへの接続に使用する情報と、出力の生成に使用する設定を決定します。デフォルトでは、ServiceNow CLI はデフォルトのプロファイルの設定を使用してインスタンスに接続します。別の設定を使用する場合は、追加の名前付きプロファイルを作成して参照することができます。 詳細については、「ServiceNow CLI 接続プロファイルの構成と管理」を参照してください。
次の例は、デフォルトプロファイルと名前付きプロファイルを含む構成ファイルを示しています。各プロファイルは、異なる認証情報を使用し、異なるホストと出力形式を指定できます。
{
"profiles":{
"default":{
"host":"https://myinstance.service-now.com",
"loginmethod":"basic",
"username":"admin",
"output":"json",
"hostversion":"Paris",
"appversion":"1.0"
},
"user1":{
"host":"https://otherinstance.service-now.com",
"loginmethod":"basic",
"username":"user1",
"output":"yaml",
"hostversion":"Paris",
"appversion":"1.0"
}
}
}コマンド構造
ServiceNow CLI コマンドは次の構造に従います。
sncプログラムへの基本呼び出し。- トップレベルのコマンドグループとそれに続く子コマンドグループ。
- 実行する操作を指定するコマンド。
- 操作に必要な一般的な CLI 引数。引数は任意の順序で指定できます。
$ snc <command-group> <command> [arguments]引数は、数値、文字列、JSON オブジェクトなどのさまざまなタイプの入力値を取ることができます。サポートされるタイプは、指定するコマンドによって異なります。
引数の値
ServiceNow CLI 内の引数の値の多くは、次の例のテーブルやテーブル名のように、単純な文字列または数値です。
$ snc record create --table incident --data "{short_description: 'New Incident'}"スペース文字を含まない文字列も、引用符で囲むことができます (任意)。ただし、1 つ以上のスペース文字を含む文字列は、引用符で囲む必要があります。
出力の形式
ServiceNow CLI は次の 4 つの出力形式をサポートしています。
json:出力は JSON としてフォーマットされます。これがデフォルトです。{ "default": { "appversion": "1.0.8", "host": "https://myinstance.service-now.com", "hostversion": "Paris", "loginmethod": "basic", "output": "json", "username": "admin" }, "user1": { "appversion": "1.0.8", "host": "https://otherinstance.service-now.com", "hostversion": "Paris", "loginmethod": "basic", "output": "yaml", "username": "admin" } }yaml:出力は YAML としてフォーマットされます。YAML を使用して、YAML 形式の文字列を発行または使用するサービスおよびツールで出力を処理します。default: appversion: 1.0.8 host: https://myinstance.service-now.com hostversion: Paris loginmethod: basic output: json username: admin user1: appversion: 1.0.8 host: https://otherinstance.service-now.com hostversion: Paris loginmethod: basic output: yaml username: admintext:出力は、タブ区切りの文字列値の複数の行としてフォーマットされます。この出力は、grep、sed、awk などの従来の UNIX テキストツールと、PowerShell によって実行されるテキスト処理で使用します。default https://myinstance.service-now.com Paris 1.0.8 basic admin json user1 https://otherinstance.service-now.com Paris 1.0.8 basic admin yamltable:出力は、人間が判読可能な形式で情報が表示されるテーブルとしてフォーマットされます。NAME HOST HOST VERSION APP VERSION LOGIN METHOD USERNAME OUTPUT ------------------------------------------------------------------------------- default myinstance Paris 1.0.8 basic admin json user1 otherinstance Paris 1.0.8 basic admin yamlnone:CLI は出力をコンソールに出力しません。成功、エラー、および進捗状況のメッセージは引き続き表示されます。
コマンド出力は、次の 2 とおりの方法で指定できます。
- 構成ファイルの名前付きプロファイルで
outputオプションを使用する - 次の例では、デフォルトの出力形式をテキストに設定します。
{ "profiles":{ "default":{ "output":"text" } } - コマンドラインで
--output引数を使用する - 次の例では、単一のコマンドの出力を JSON に設定します。コマンドのこのオプションは、構成ファイルに現在設定されている値を上書きします。
$ snc record query --table incident --query ‘active=true’ --output json