記事 (1/25)
このモジュールでは、次のことを学習します。
注意:IntegrationHub を本番インスタンスで使用するには、サブスクリプションが必要です。IntegrationHub を非本番および個人の開発者インスタンスで有効化すれば、サブスクリプションなしでデータ連携を構築およびテストすることは可能です。
このモジュールは、Flow Designer に精通していることを前提としています。フロー、アクション、ステップ、サブフロー、フロー実行、スポークについて熟知していない場合は、Flow Designer トレーニングモジュールで詳細を学習してください。
記事 (2/25)
重要:この学習モジュールの内容は、Rome ServiceNow リリース用に最後に更新されました。
Rebrickable Spoke アプリケーションは、スポークおよびアクション作成の基になる概念とプロセスを紹介し、デモンストレーションするために、この学習モジュール全体で使用されます。受講者は Rebrickable Spoke アプリケーションを構築しません。
実習では、IPInfo Spoke アプリケーションを開発します。
演習は、次の 3 つの方法で示されます。
IPInfo Spoke アプリケーションを使用すると、ユーザーはパブリック IP アドレスの位置情報を取得するアクションを作成できます。
記事 (3/25)
IntegrationHub は、ServiceNow でサードパーティプラットフォームを操作するために使用されるフレームワークです。開発者は IntegrationHub を使用して、外部プラットフォームに対してコマンドを実行する統合アクションを構築できます。
IntegrationHub の使用方法の例:
IntegrationHub には、REST API を呼び出すステップ、PowerShell コマンドを実行するステップ、他の API を操作するスクリプトを記述するステップが含まれています。ステップは、Flow Designer を外部プラットフォームと統合するために使用されるアクションの構成要素です。アクションは、Flow Designer で使用する再利用可能な構成要素です。該当分野のエキスパート (SME) は、開発者とプロセスオーナーがプロセスで利用できるアクションを構築できます。
IntegrationHub は、開発者に以下のメリットを提供します。
記事 (4/25)
IntegrationHub には、次の 4 つのサブスクリプションレベルがあります。
サブスクリプションのレベルごとに、追加のスポークと機能が入っています。ServiceNow IntegrationHub スターターパックは、年間最大 1,000,000 トランザクションを利用できる無料のサブスクリプションです。IntegrationHub サブスクリプションパックには IntegrationHub サブスクリプションが必要です。サブスクリプションパックは ServiceNow 担当者が有効化する必要があります。IntegrationHub サブスクリプションパックには、関連するプラグインがまだ有効になっていない場合のデモデータとアクティベーションが入っています。会社のインスタンスで IntegrationHub を要求する方法については、ドキュメントを参照してください。各サブスクリプションレベルに付属する機能について、ドキュメントに詳しく記載されています。
注意:IntegrationHub を本番インスタンスで使用するには、サブスクリプションが必要です。IntegrationHub を非本番および個人の開発者インスタンスで有効化すれば、サブスクリプションなしでデータ連携を構築およびテストすることは可能です。この学習モジュールでは、無料のスターターパックを使用します。
開発者サイトの [自分のインスタンス (My Instance)] セクションから、Personal Developer Instance (PDI) の ServiceNow IntegrationHub Installer プラグインを有効化します。開発者サイトの任意のページから、[アカウント] メニューをクリックし、[プラグインの有効化] インスタンスアクションを選択します。ServiceNow IntegrationHub Installer の [有効化] ボタンをクリックして、すべての IntegrationHub プラグインを有効化します。
注意:ServiceNow IntegrationHub Installer プラグインは、個人開発者インスタンスで ServiceNow IntegrationHub Starter Pack Installer プラグイン (com.glide.hub.integrations) を有効化します。
ServiceNow IntegrationHub Installer プラグインでは IntegrationHub 関連の複数のプラグインを有効化するため、完了までに 10 分ほどかかります。プラグインの有効化が完了すると、開発者サイトからメールが送信されます。
演習 (5/25)
この演習では、個人開発者インスタンス (PDI) で ServiceNow IntegrationHub Installer プラグインを有効化します。ServiceNow IntegrationHub Installer プラグインは、個人開発者インスタンスで ServiceNow IntegrationHub Starter Pack Installer プラグイン (com.glide.hub.integrations) を有効化します。
記事 (6/25)
スポークは、Flow Designer または IntegrationHub のアクションまたはサブフローを含むスコープ対象のアプリケーションです。スポークとは、関連するアクション、サブフロー、およびサポートアプリケーションファイルの論理的グループです。開発者とプロセスデザイナーは、スポークロジックを独自のアプリケーションで再利用できます。IntegrationHub にはベースラインスポークが含まれています。開発者は、ServiceNow Store から追加のスポークを入手したり、共有したり、独自のスポークを作成したりすることができます。
たとえば、Slack スポークには、メッセージ、インシデント、問題、変更の詳細を Slack チャネルに投稿するアクションが含まれています。
インスタンスでデフォルトで利用可能なスポークは、IntegrationHub のサブスクリプションレベルによって異なります。このモジュールの例では IntegrationHub スターターパックを使用しています。
スポークを作成するプロセスは、スコープ対象のアプリケーションを作成するプロセスと同じです。
開発者向けのヒント:慣例により、アプリケーション名に「Spoke」という単語を追加して、アプリケーションをスポークとして識別します。
アプリケーションにアクションを作成します。
アクションピッカーを使用して、フローまたはサブフローにアクションを追加します。アクションピッカーのアクションは、スポークごとにグループ化されています。[アクションピッカー] には、スコープのアプリケーション名が「Spoke」という単語なしで一覧表示されます。
注意:このモジュールの例では Rebrickable REST API を使用しています。Rebrickable は、LEGO ビルダーがコレクションを追跡するために使用できる LEGO のパーツとセットのデータベースです。開発者は Rebrickable API を使用して LEGO のセットの詳細を取得し、LEGO の在庫を管理します。
Flow Designer は、アクションピッカーのアプリケーションの横、およびフローのアクションの横でアプリケーションのロゴを使用します。
Studio のアプリケーション設定でアプリケーションのロゴを選択します。
記事 (7/25)
アクションで REST ステップを使用すると、REST API を操作できます。インライン接続を設定するには、REST ステップで直接 REST 構成の詳細を指定します。
REST API には、エンドポイント URL を使用してアクセスします。エンドポイント URL は、ベース URL、リソースパス、クエリパラメーターで構成されます。ベース URL は、REST API のインターネットホスト名です。リソースパスは、API リソースへのアドレスです。クエリパラメーターは REST API に渡される名前と値のペアで、エンドポイント URL の「?」の後にあるものです。クエリパラメーターは REST API に入力を渡し、多くの場合、出力形式のフィルタリング、ソート、指定に使用されます。
action_designer ロールまたは admin ロールを持つユーザーは、カスタムアクションを作成して保存できます。インライン接続で REST アクションを作成するには、アクションを作成してから REST ステップを追加して構成します。この例では、エンドポイント URL のコンポーネントを REST ステップの構成フィールドにマッピングします。
この例では、エンドポイント全体 (https://rebrickable.com/api/v3/lego/sets/) を [ベース URL] フィールドに入力できます。エンドポイントをベース URL とリソースパスに分割すると、Web サービスリソースが、それらのサービスが見つかった URL から分離されます。多くの REST API は、ベース URL なしでリソースパスを文書化します。たとえば、Rebrickable API は、ベース URL なしでパーツを取得するためのリソースパスを文書化します。
注意:開発者はインライン接続を使用して REST APIs への接続をテストできますが、本番環境でのインライン接続の使用は推奨されません。アクションは、使用するためにアクション自体を直接変更する必要がないように設計する必要があります。本番環境で REST API に接続し、構成をアクション定義から分離するには、別途このモジュールで説明する接続および資格情報エイリアスを使用する必要があります。
記事 (8/25)
情報をリソースパスで、またはクエリパラメーターとして REST API に渡します。データピルを使用して変数をリソースパスまたはクエリパラメーターに渡し、REST ステップを動的にします。使用可能なリソースパスとクエリパラメーターについては、REST API のドキュメントを参照してください。
リソースパスをベース URL に追加することで、エンドポイントが作成されます。REST API は、変数情報を得るためにこのリソースパスを使用します。たとえば、Rebrickable のベース URL は https://rebrickable.com です。API には、パーツ、セット、色などの情報を返すリソースパスが含まれています。
渡す変数は {中括弧} で囲まれています。たとえば、特定の LEGO セットの詳細を取得するには、リソースパス /api/v3/lego/sets/{set_num}/ の {set_num} を LEGO のセット番号に置き換えます。データピルを使用して、アクション入力またはアクションの他のステップから変数を渡します。
REST API は、クエリパラメーターを使用して構成情報を渡します。たとえば、セットのリスト /api/v3/lego/sets/ を取得する Rebrickable リソースパスは、返されたセットをフィルタリングおよびソートするためのクエリパラメーターを受け入れます。REST ステップの [要求の詳細] セクションにクエリパラメーターを追加して、クエリパラメーター値を渡します。
データピルを使用して、アクション入力またはアクションの他のステップから変数を渡します。
記事 (9/25)
REST ステップをテストする場合、Flow Designer でアクションをテストします。
[実行の詳細] タブで [ステップ] セクションを展開し、ステップ実行の詳細を表示します。
[ステップ構成] セクションを使用して、ステップが実行されたときの REST ステップの構成を確認します。
[ステップ出力データ] セクションを使用して、REST Web サービス呼び出しから返されたデータを確認します。この例では、REST ステップが Rebrickable API の呼び出しに成功し、JSON 形式で情報を返しました。
応答本文ステップ出力のランタイム値などの長い文字列はリンクです。ランタイム値のリンクをクリックすると、文字列全体が表示されます。
この例は、エラーが発生した Rebrickable API の呼び出しです。エラーコードは 3 で、エラーメッセージは無効なユーザー名 / パスワードの組み合わせが使用されたことを示しています。応答本文は、認証資格情報が提供されなかったことを示しています。
演習 (10/25)
この演習では、REST API にアクセスして位置データを操作するアクションのスポークを作成します。また、パブリック IP アドレスの位置情報を取得するアクションを作成します。
注意:PDI が自動的に App Engine Studio を開く場合は、PDI にアクセスするために使用するユーザーロールを変更する必要があります。演習を完了するには、[管理者] ユーザーロールに切り替えます。
演習のこのセクションでは、Web ブラウザーで REST API をテストして、応答を表示します。
注意:インライン接続はテストにのみ使用してください。
演習 (11/25)
この演習では、IP アドレスを入力として渡すように [IP から地理データを取得] アクションを更新して、アクションをテストします。
記事 (12/25)
REST API 呼び出しは、応答本文にデータを返します。応答本文データは通常、JSON または XML 形式で構造化されます。スクリプトステップを使用すると、構造化されたデータを変数に解析し、アクションまたはフローの他の場所で使用できます。
応答から抽出されたデータを取得する一般的な方法は次のとおりです。
注意:IntegrationHub 標準パックには、XML 形式の応答本文を解析するために使用できる XML パーサーステップが含まれています。
LEGO のセットの詳細を取得する Rebrickable リソースは、応答本文に JSON を返します。応答本文のキーと値のペアは JSON 構造の最上位にあります。
{ "set_num":"10247-1", "name":"Ferris Wheel", "year":2015, "theme_id":22, "num_parts":2463, "set_img_url":"https://m.rebrickable.com/media/sets/10247-1.jpg", "set_url":"https://rebrickable.com/sets/10247-1/ferris-wheel/", "last_modified_dt":"2016-05-29T00:25:32.286418Z" }
[スクリプト] ステップの入力変数を作成して、応答本文をスクリプトで使用できるようにします。
応答本文から各キーの出力変数を作成します。
JSON.parse() メソッドを使用して JSON 応答を解析します。キーを応答本文から出力変数にマップします。
(function execute(inputs, outputs) { var responseObject = JSON.parse(inputs.response_body); outputs.set_name = responseObject.name; outputs.release_year = responseObject.year; outputs.parts = responseObject.num_parts; })(inputs, outputs);
REST ステップからの応答が有効であったことを確認するには、ステータスコードの入力変数を追加します。ステータスコード 200 をチェックする if ステートメントに解析ロジックをラップします。
スクリプト出力変数ごとにアクション出力変数を作成し、REST API から返されたデータをフローで使用します。アクション出力変数には、分かりやすいラベルを使用してください。
[編集モードを終了] ボタンをクリックして、アクション出力に値を割り当てます。
開発者向けのヒント:アクション入力変数用のアクション出力変数を作成すると、その入力値をフローで使用できます。
演習 (13/25)
このモジュールでは、REST API を操作してパブリック IP アドレスから地理データを取得するアクションを作成しました。次に、IP アドレスをアクションに動的に渡すようにアクションを更新しました。この演習では、[IP から地理データを取得] アクションを更新して、IPInfo REST API によって返される JSON 文字列から、ホスト名、市区町村、地域、国、経度と緯度の座標を取得します。
記事 (14/25)
サードパーティプラットフォームにアクセスするには、REST API にアクセスするためのエンドポイントなどの接続の詳細が必要です。以前このモジュールで使用したインライン接続は、直接 REST ステップで接続を作成しました。接続および資格情報エイリアスと接続を使用すると、接続を 1 回だけ定義した後、任意のカスタムアクションでその接続を使用できます。
接続および資格情報エイリアスは接続に対するポインターです。接続は、サードパーティプラットフォームに接続するための URL またはホスト名を定義します。
接続および資格情報エイリアスと接続を使用すると、次の処理を実行できます。
開発者は、データ連携アクションで接続および資格情報エイリアスを使用して、データ連携によって実行される処理から接続構成を分離しておくことができます。データ連携アクションは、データ連携の接続および資格情報エイリアスにアクセスします。すべてのアクションに対して接続を 1 回だけ構成します。
たとえば、Microsoft AD Spoke のアクションは、AD の接続および資格情報エイリアスをポイントするように構成されています。Active Directory フローを構築する開発者とプロセスオーナーは、Active Directory ドメインコントローラー接続を 1 度だけ構成します。接続の詳細が変更された場合、開発者は Active Directory に接続するすべてのアクションではなく、接続レコードの接続構成を変更するだけで済みます。
接続および資格情報エイリアスをポイントするようにスポークで REST アクションを構成し、エンドポイントのベース URL を 1 回だけ構成します。アクションの REST ステップで REST API のリソースをポイントするようにリソースパスを構成します。たとえば、Rebrickable_Alias の接続および資格情報エイリアスを作成します。接続および資格情報エイリアスをポイントする REST リソースのアクションを作成します。接続レコードで接続 URL を構成します。
開発者向けのヒント:すべてのリソースに共通するドメインとエンドポイントの要素を使用して、接続レコードの接続 URL を構成します。たとえば、REST API のすべての Rebrickable リソースは /api/v3 で始まります。接続 URL は https://rebrickable.com/api/v3 です。
接続および資格情報エイリアスには複数の関連する接続レコードを含めることができ、これによって開発者はホストを簡単に切り替えることができます。
たとえば、AD の接続および資格情報エイリアスには、本番および非本番の Active Directory ドメインコントローラーに関連する接続レコードを含めることができます。開発者は、アクティブにする必要がある接続にアクティブフラグを設定することで、接続を切り替えることができます。
REST API の接続および資格情報エイリアスは、REST API に複数の URL でアクセスできる場合、複数の関連する接続を持つことができます。REST API が異なるバージョンをサポートしている場合は、API の異なるバージョンに対して複数の関連する接続を使用できます。たとえば、Rebrickable API にさまざまなバージョンの接続を構成できます。アクションの実行時には、アクティブな接続のみが使用されます。
記事 (15/25)
connection_admin ロールまたは admin ロールを持つユーザーは、接続および資格情報エイリアスを作成して保存できます。
Studio で接続および資格情報エイリアスを作成するには:
[送信] ボタンをクリックして、接続および資格情報エイリアスを保存します。[接続] 関連リストを使用して、接続および資格情報エイリアスに関連付けられた接続を作成します。
記事 (16/25)
connection_admin ロールまたは admin ロールを持つユーザーは、接続を作成して保存できます。
接続および資格情報エイリアスレコードの [接続] 関連リストで [新規] ボタンをクリックします。接続を構成します。
記事 (17/25)
接続レコードは、アプリケーションファイルではなくデータとみなされます。開発者が内部コンピューターまたは REST API に接続の詳細を含めないようにするには、接続をアプリケーションに手動で追加する必要があります。接続は、パブリック REST API のアプリケーションにのみ追加する必要があります。
パブリック REST API の接続をアプリケーションに追加するには、[接続] 関連リストで [接続] チェックボックスをオンにします。次に、[選択した行のアクション...] メニューをクリックし、[アプリケーションファイルを作成] を選択します。
[レコードからアプリケーションファイルを作成] ダイアログで詳細を確認し、[OK] ボタンをクリックします。
Studio でアプリケーションのファイルを検証し、[ファイル] メニューをクリックして、[設定] メニューアイテムを選択します。[アプリケーションファイル] 関連リストで、[クラス] が [メタデータスナップショット] のアイテムを検索します。フィルター済みリストに、該当する接続が含まれているはずです。
記事 (18/25)
接続および資格情報エイリアスを使用する REST アクションを作成するには、アクションを作成してから [REST] ステップを追加して構成します。[接続] に [接続エイリアスを使用] を選択し、[接続エイリアス] を選択します。
[要求の詳細] セクションの [リソースパス]、[HTTP メソッド]、[クエリパラメーター] を構成します。
演習 (19/25)
この演習では、IPInfo REST API の接続および資格情報エイリアスと接続を作成します。続けて、[IP から地理データを取得] アクションを更新して、接続および資格情報エイリアスを使用し、更新されたアクションをテストします。
記事 (20/25)
一部の REST API は、REST API によって提供されるリソースにアクセスするために認証を必要とします。資格情報レコードは、REST API にアクセスするために使用される認証データです。ServiceNow は、暗号化されたフィールドに資格情報を保存します。資格情報を入力した後は、その資格情報を表示することはできません。REST API は、次の 3 つの資格情報タイプを使用します。
開発者向けのヒント:利用可能な認証方法については、REST API のドキュメントを参照してください。REST API で複数の認証方法が許可されている場合は、利用可能な方法の中で最も安全な方法を選択してください。
admin ロールを持つユーザーは、資格情報を作成して保存できます。
ServiceNow のメインウィンドウで資格情報を作成するには、Application Navigator を使用して、[接続および資格情報] > [資格情報] を開きます。[新規] ボタンをクリックします。作成する資格情報のタイプを選択します。
資格情報タイプのリストで [API キー資格情報] リンクをクリックします。資格情報の名前と API キーを構成します。
Rebrickable は、API リソースにアクセスするための 2 つの認証方法を文書化しています。2 番目の Rebrickable 認証方法では、API キーをクエリパラメーターとして渡します。資格情報レコードに API キーを保存すると、API キーがクリアテキストで公開されなくなります。
最初の認証方法では「key」という単語の後に API キーを続けたものを Authorization ヘッダーに渡します。資格情報レコードの [API キー] フィールド値として使用する値は key b4e0697ce3d5cf21af1088e9bd238dd です。
開発者向けのヒント:[API キー] フィールドでは値がマスクされます。タイプミスを防ぐには、フィールドの外で完全なキーを作成してから、その値をフィールドに貼り付けます。
資格情報タイプのリストで [基本認証資格情報] リンクをクリックします。資格情報の [名前]、[ユーザー名]、[パスワード] を構成します。
基本認証資格情報が使用されると、ServiceNow はユーザー名とパスワードからエンコード文字列を生成し、これが基本エンコード文字列として Authorization ヘッダーに渡されます。
記事 (21/25)
資格情報を使用するには、接続レコードで資格情報を選択します。
connection_admin ロールまたは admin ロールを持つユーザーは、接続に資格情報を割り当てることができます。
ステップの実行の詳細に、REST エンドポイントへのアクセスに使用された資格情報と接続が示されています。
演習 (22/25)
開発者は、GitHub のようなソースコントロールアプリケーションを使用して、個人開発者インスタンス (PDI) の外部で変更をコミット (完了した作業を保存) できます。アプリケーションに加えられた変更をコミットして、作業をソースコントロールに保存します。
この演習では、GitHub に新しい IPInfo Spoke リポジトリを作成し、IPInfo Spoke アプリケーションを新しいリポジトリに接続して、このモジュールで完了した作業内容を保存します。
演習のこのセクションでは、新しい IPInfo Spoke リポジトリを表示して、IPInfo Spoke アプリケーションを新しいリポジトリにリンクし、コミットされたファイルを含むリポジトリを表示します。
記事 (23/25)
ここでは、IntegrationHub での REST Web サービスへのアクセスについての理解度を確認できます。自分の進行状況を評価するには、次の質問が役立ちます。質問ごとに回答を決定し、質問の任意の場所をクリックして回答を表示します。
質問:次のうち、IntegrationHub サブスクリプションレベルでないものはどれですか?
回答:正解は 2. 基本です。
質問:次の機能とスポークのうち、IntegrationHub を使用しているものはどれですか?複数の回答が正解の場合があります。
回答:正解は 1. Slack スポーク、3. PowerShell ステップ 、5. XML パーサーです。Customer Service スポークには Customer Service Management のサブスクリプションが必要です。Make a decision フローロジックは Flow Designer に含まれています。
質問:正誤問題?インライン接続は、テスト用の REST ステップでのみ使用する必要があります。
回答:正解は正しいです。代わりに接続および資格情報エイリアスを使用する必要があります。これにより、アクションを使用するためにアクション自体を直接変更する必要がなくなります。
質問:REST ステップを動的にする方法を説明しているのは次のうちどれですか?複数の回答が正解の場合があります。
回答:正解は 3 と 4 です。リソースパスの値とクエリパラメーターの値のデータピルを使用すると、REST ステップで使用するアクションに値を渡すことができます。
スクリプトはエンドポイントのコンポーネントを構築するために使用できますが、エンドポイント全体を構築するために使用することはできません。HTTP メソッドを POST に設定しても値の入力を求められず、API で動作しない可能性があります。
質問:REST ステップのテスト方法を説明する文は次のどれですか?複数の回答が正解の場合があります。
回答:正解は 1 と 3 です。アクションから直接テストするのが、アクションの動作を検証する最も簡単な方法です。アクションはフローでテストすることもできますが、未公開のアクションをフローに追加する前に、フローに [ドラフトアクションを表示] 構成を設定する必要があります。
アクションにはトリガーがありません。アクションは公開してフローで使用することも、テストする前にアクションを公開してはいけません。ステップには [テスト] ボタンがありません。
質問:REST API 呼び出しからの応答本文を解析する方法を説明しているのは次のうちどれですか?複数の回答が正解の場合があります。
回答:正解は 1 と 4 です。XML パーサーステップには、IntegrationHub 標準パックのサブスクリプションが必要です。現時点では、JSON を解析する唯一の方法はスクリプトステップを使用することです。
現在利用可能な JSON パーサーステップはありません。REST ステップには応答を解析するオプションがありません。OpenAPI 仕様のサポートは REST ステップを構成するだけで、API からの出力の処理には役立ちません。
質問:接続および資格情報エイリアスを使用するメリットは次のうちどれか?複数の回答が正解の場合があります。
回答:正解は 3、4、5 です。接続の詳細は、フローではなくアクションから分離されます。REST メッセージレコードは IntegrationHub から完全に分離されています。
質問:資格情報レコードを選択して REST ステップを使用する方法を説明する文は次のどれですか?
回答:正解は 4 です。接続レコードの [資格情報] フィールドを、その接続の正しい資格情報レコードで構成します。
質問:次のうち、REST APIs で使用される資格情報のタイプではないものはどれですか?複数の回答が正解の場合があります。
回答:正解は 3. CIM と 5. JDBC です。
記事 (24/25)
コアコンセプト:
記事 (25/25)
お疲れさまでした。「IntegrationHub の REST」モジュールはこれで完了です。IntegrationHub への関心に基づいて、さらに次のことも学んでいただけます。