ワークフロー設定ウィザードによる Webhook ワークフローの作成
ウェブフックを実装するには HTTP URL HTTP メソッド、リクエストボディテンプレートなどのパラメータを指定するワークフローを作成します。 その後、この Webhook を自動化ワークフロー・ポリシーで使用できます。
Turbonomic UI で、ナビゲーション・メニューから 「設定」 を選択し、 「ワークフロー」をクリックします。
「ワークフローの作成」をクリックします。

新規 Webhook を作成する代わりに既存の Webhook を編集するには、編集する Webhook の鉛筆アイコンをクリックします。

「接続タイプの選択」 パネルで、 「Web フック」 をクリックし、 「次へ」をクリックします。

Web フックの詳細を定義します。

表示名: Web フックに短い記述名を付けます。
説明: オプションで、詳細説明を入力します。
アドレス: ウェブフックサーバー HTTPを指定します。注: アクションからの値はアドレスフィールドに注入することができます。 例えば、https://my-remote-executor/${action.actionType}/executeは有効な URL であり、$action.actionTypeは実際のアクションタイプに解決される。 テンプレート化は、ステップ 7b で説明したペイロードと同じルールに従います。HTTP メソッド : HTTPを選択します。
サーバー証明書の検証: オプションで、サーバー証明書の検証をスキップする (例えば、自己署名サーバー証明書を信頼する) ことを選択解除します。
Web プロキシー: オプションで、Web フックのプロキシー・ホストを使用可能にすることを選択します。

プロキシー・タイプ、ホスト、およびポートを指定します。 オプションで、プロキシー・ホストに対して認証するためのユーザー名とパスワードを指定します。
次へ をクリックします。
認証を構成します。

Web フック API サーバーの要件を満たすように認証を構成することができます。 Turbonomic は、 None、 Basic、および OAuth 認証をサポートします。
- なし: 認証をバイパスします。
基本: 基本認証を構成するには、ユーザー名とパスワードを指定します。
OAuth : OAuth認証を設定するには、クライアントID、クライアントシークレット、およびURL を指定します。
次へ をクリックします。
要求ヘッダーを追加します。

要求ヘッダーを追加するには、 「ヘッダーの追加」をクリックします。 Web フックに含める複数のヘッダーを指定できます。 ヘッダーにシークレットが含まれている場合は、 「値の非表示 (Hide value)」 スイッチをクリックして、入力後に再び表示されないようにすることができます。
次へ をクリックします。
要求本体を指定します。

要求本体テンプレートは、Webhook メッセージ要求の送信時に、キーワードを使用してアクションの詳細を置換します。 キーワード置換が必要に応じて機能していることを確認するために、既存のアクション UUID を指定して、例として使用することができます。
メディア・タイプ: Webhook 要求本文のメディア・タイプを指定します。
text、JSON、またはXMLのいずれかを選択します。ペイロード・テンプレート: Webhook ペイロードに含めるアクション DTO 変数を指定します。
この例では、ペイロード・テンプレート値は
$action.detailsです。 この変数は、現在のアクションを表すActionApiDTOオブジェクト内のフィールドへの参照です。 テンプレートは、オブジェクト名としてactionで始まる、この DTO 内の任意のフィールドを参照できます。 例えば、$action.createTimeは、アクションが作成された時刻を示します。ActionApiDTOオブジェクトの完全なリストについては、 API リファレンス または API Swagger UI を参照してください。事前に定義されたリクエストペイロードの例については、 Turbonomic Orchestration GitHub リポジトリを参照してください。
- アクション UUID: Web フックをテストするには、 Turbonomic アクションの UUID 値を指定します。 適切なアクション UUID を見つけるには、以下の手順を実行します。
メインナビゲーションメニューからアクションセンターを選択します。
リストからアクションを選択し、対応する 「詳細」 ボタンをクリックします。

矢印アイコン(
)をクリックして、アクションを新しいタブで開きます。
Turbonomic URL の末尾からアクションの UUID をコピーします。

要求本体の 「アクション UUID」 フィールドにこの UUID を指定します。
オプションで、ペイロード・テンプレートを検証し、Web フックをテストします。

ペイロード・テンプレートの構文を検証するには、 「テンプレートの検証」をクリックします。 テンプレートが有効な場合は、チェック・マークが表示され、要求ペイロードが表示されます。 テンプレートが無効な場合は、エラー・メッセージが表示されます。
- Web フックのエンドツーエンド構成をテストするには、 「Web フックのテスト」をクリックします。 構成が有効であり、Webhook サーバーから受信した応答が成功した場合は、チェック・マークが表示されます。 構成が無効であるか、Webhook サーバーの応答が成功しなかった場合は、正符号 (+) とエラー・メッセージの両方が表示されます。
Web フック構成に問題がなければ、 「作成」をクリックします。
Web フックを使用する自動化ポリシーを作成します。
オーケストレーションに Web フック・ワークフローを使用するポリシーの作成については、「 自動化ワークフロー」を参照してください。
ウェブフックの詳細と検証を確認する
Web フックを作成した後、メインの 「ワークフロー」 ページから構成の詳細を素早く確認できます。
確認したい Web フックの情報アイコン (i) をクリックします。

サイド・パネルが開き、Web フックに関する詳細が表示されます。 このパネルには、ヘッダー、要求本体、および Webhook に関連付けられているすべてのポリシーのタブが含まれています。

何らかの理由で Web フックが無効である場合、パネルには INVALID テンプレートの検証状況が表示され、検証の失敗に関する詳細が示されます。

サンプルWebhookアプリケーション
ウェブフックのワークフローは HTTP 経由でアプリケーションにメッセージを送信します。 要求本体にアクション・データからの値を組み込むことができるテンプレートとしてメッセージを表現します。 このテンプレートは、アプリケーションが受け入れることができるテキスト、JSON、またはその他のフォーマットを表すことができます。
Webhook を使用して、 IBM API Connect、 Slack、 Amazon Web Servicesなどの既存のさまざまなアプリケーションにメッセージを送信できます。
単純な例をデプロイし、Web フック・テンプレートをテストするには、Web フック・メッセージを受け取ってテンプレート・データを出力する node.js サーバーを実装します。 このサーバーをネットワーク内のマシンにインストールすると、ウェブフックワークフローにURL を指定し、特定のアクションに対する応答をテストすることができます。
以下の例は、 node.js Web サーバーのリストです。
let port = 9090;
const http = require("http");
console.log(`Starting server on port ${port}`);
http.createServer((request, response) => {
request.setEncoding('utf8');
console.log('REQUEST METHOD: ', request.method);
let datStr = '';
request.on('data', chunk => {datStr = datStr + chunk});
request.on('end', () => {console.log('End of DATA: ', datStr)})
}).listen(port);
このプログラムを実行すると、実行中であること、および listen しているポートを識別するためのメッセージがコンソールに出力されます。
サーバーは、メッセージを受信すると、ワークフローの template フィールドで指定されているように、要求メソッドを出力してから、メッセージ要求本体を出力します。
このワークフローを使用するように自動化ポリシーを構成した場合、このサーバーは、ポリシーのスコープ内のエンティティーに対して Turbonomic が実行したアクションごとにメッセージをログに記録します。