メインコンテンツまでスキップ

Center のエージェントプールの使用方法

エージェントプール を使用すると、実行のたびに特定のエージェントを選択することなく、1 つのワークフローをエージェントのグループ上で実行できます。Center はプールに対するリクエストのキューを管理し、プール内で次に空いているエージェントが各リクエストを取得して実行します。同じワークフローのリクエストを多数処理する必要がある場合 (たとえば、他のシステムから届くリクエストや、決まった時刻に繰り返し実行する処理) に、エージェントプールを使用します。

エージェントプールの仕組み​

  • 1 つのワークフローと 1 つ以上のエージェントを指定して、エージェントプールを作成します。
  • プールにリクエストを送信します。各リクエストはキューアイテムになります。
  • プール内の空いているエージェントがキューアイテムを取得し、ワークフローを実行します。すべてのエージェントが使用中の場合、キューアイテムは 新規 ステータスのまま待機します。

エージェントプールとエージェントグループ​

エージェントグループとエージェントプールはどちらもエージェントを含みますが、役割が異なります。

エージェントグループエージェントプール
役割ワークフローをデプロイできるように、エージェントをグループ化します。1 つのワークフローを実行するエージェントをグループ化し、空いているエージェントが各リクエストを取得できるようにします。
ワークフローとの関係ワークフローは、パッケージとエージェントグループを関連付けます。パッケージは、そのグループに属するすべてのエージェントマシンに配布されます。プールは 1 つのワークフローに対して作成します。プール内のエージェントは、そのワークフローのエージェントグループに属している必要があります。
スケジュールでの扱い新しいスケジュールの作成 ダイアログの ターゲットタイプ として選択できます。新しいスケジュールの作成 ダイアログの ターゲットタイプ として選択できます (ご利用の Center が対応している場合。手順 3 のオプション A を参照)。

要するに、エージェントグループはワークフローがデプロイされる場所であり、エージェントプールは、そのエージェントのうちワークフローに対するリクエストを受け付けるグループです。

エージェントプールを設定して使用するには、次の手順に従います。

  1. 前提条件: 必要なものを準備します。
  2. エージェントプールの作成: すべての環境で必須です。
  3. エージェントプールのトリガー: 次の 2 つのオプションから どちらか 1 つ を選択します。
    • オプション A: スケジュール: Center Cloud では利用できません。
    • オプション B: サードパーティクライアント: Center Cloud とオンプレミスの両方で利用できます。

オプション A とオプション B は、プールにリクエストを送信するための 2 つの代替方法です。連続した手順ではありません。選び方については、手順 3 の冒頭を参照してください。

注記

Center Cloud をご利用の場合: Center Cloud では、現在、エージェントプールは HTTP リクエストでのみトリガーできます。手順 1、手順 2、および手順 3 のオプション B に従ってください。オプション A は省略してください。

1. 前提条件​

エージェントプール機能を使用する前に、次の要件を満たしていることを確認してください。

  • akaBot Center がインストールされ、アクセスできること。
  • HTTP リクエストでエージェントプールをトリガーする場合 (オプション B) は、次のものも必要です。
    • Postman などの HTTP クライアント。
    • マネージドトークン。「マネージド トークン ガイドライン」ドキュメントの手順に従って作成します。

2. エージェントプールの作成​

エージェントプールは、特定のワークフローを実行するように構成された akaBot エージェントのグループです。実行の一貫性と安定性を確保するため、同じプール内のすべてのエージェントは同一の環境にしてください。

akaBot Center で新しいエージェントプールを作成するには、エージェント > エージェントプール > 新規作成 に移動します。

1771820288041-812.png

エージェントプールの作成 ダイアログで、次の操作を行います。

  1. エージェントプールにわかりやすい名前を入力します。
  2. エージェントが実行するワークフローを選択します。下の 4 で選択するエージェントは、このワークフローのエージェントグループに属している必要があります。
  3. トークン ドロップダウンリストで、エージェントプールにメッセージをプッシュする HTTP リクエストの呼び出しに使用するマネージドトークンを選択します。
    HTTP リクエストでエージェントプールをトリガーする場合 (オプション B) は、トークンを選択します。Center Cloud ではトークンを選択してください。オンプレミスでは、Center のスケジュール機能のみでエージェントプールをトリガーする場合 (オプション A)、この項目は任意です。
  4. ワークフローの実行を担当するエージェントを 1 つ以上選択します。

1771820332495-836.png

作成後、新しいプールがエージェントプールの一覧に表示されます。

1771820349412-497.png

エージェントプールをクリックすると、詳細な設定を確認できます。

1771820364096-384.png

3. エージェントプールのトリガー​

エージェントプールを作成したら、次の 2 つのオプションから どちらか 1 つ を選択して、プールにリクエストを送信します。2 つのオプションは代替方法であり、連続した手順ではありません。

オプション A: スケジュールオプション B: サードパーティクライアント
使用する場面ワークフローを決まった時刻または間隔で自動的に実行する必要がある場合。他のシステムやツールが、必要なときにワークフローを開始する必要がある場合。
仕組みCenter が、スケジュールされた時刻ごとにキューアイテムを作成します。クライアントが HTTP リクエストを送信し、Center がキューアイテムを作成します。
マネージドトークン不要必須
利用可否オンプレミス、Center v4.0.0.5 以降。Center Cloud では利用できません。Center Cloud およびオンプレミス
注記

Center Cloud では、新しいスケジュールの作成 ダイアログの 実行ターゲット タブにエージェントが個別に一覧表示されるだけで、選択できるエージェントプールはありません。この場合は、オプション B を使用してください。

agent-pool-schedule-cloud-execution-target.png

確認するには、オートメーション > スケジュール > 新規作成 を開き、実行ターゲット タブを選択します。ターゲットタイプ の一覧に エージェントプール がある場合は、オプション A を使用できます。

オプション A: スケジュールを使用してトリガーする (オンプレミスのみ)​

ワークフローを決まった時刻または間隔で自動的に実行する必要がある場合は、このオプションを使用します。このオプションではマネージドトークンは不要です。このオプションは Center Cloud では利用できません。Center Cloud をご利用の場合は、オプション B に進んでください。

akaBot Center のスケジュール機能を使用して、エージェントプールを自動的にトリガーできます。

オートメーション > スケジュール > 新規作成 に移動します。

1771820395129-275.png

新しいスケジュールの作成 ダイアログで、次の操作を行います。

  1. スケジュールにわかりやすい名前を入力します。
  2. 対象のワークフローを選択します。このワークフローは、エージェントプールに設定したワークフローと同じである必要があります。
  3. タイムゾーンを選択します。
  4. トリガー タブで、時間の繰り返しを設定し、スケジュールを実行する頻度を定義します。

agent-pool-schedule-trigger.png

次に、実行ターゲット タブに移動します。

  • ターゲットタイプ の一覧には、エージェントグループ と エージェントプール の 2 つのオプションがあります。エージェントプール を選択し、トリガーするエージェントプールを選択します。
  • 保存 をクリックして設定を完了します。

agent-pool-schedule-target-type.png

スケジュールが作成されると、スケジュールの一覧に表示されます。

1771820452793-860.png

実行時の動作​

スケジュールがトリガーされると、次のように動作します。

  • 新しいキューアイテムが作成されます。
  • プール内の空いているエージェントの 1 つがキューアイテムを取得し、実行を開始します。
  • タスクの実行中、キューアイテムのステータスは InProgress になります。
  • 対応可能なエージェントがない場合、エージェントが空くまでキューアイテムは 新規 ステータスのままになります。
  • 実行後:
    • 正常に完了すると、ステータスは 成功 になります。
    • ビジネス例外が発生すると、ステータスは 失敗 になります。

1771820474256-428.png

1771820485476-954.png

オプション B: サードパーティクライアントを使用してトリガーする (Center Cloud およびオンプレミス)​

他のシステムやツールが、必要なときにワークフローを開始する必要がある場合は、このオプションを使用します。Center Cloud では、この方法でエージェントプールをトリガーします。クライアントがエージェントプールに HTTP リクエストを送信すると、Center がそのリクエストをプールのキューに追加します。このオプションにはマネージドトークンが必要です。マネージドトークンは、エージェントプールの作成時 (手順 2) に トークン 項目で選択します。

1771820545137-108.png

1771820552772-723.png

リクエストを送信するには、次のものが必要です。

  • エージェントプールキー
  • 有効な マネージドトークン

たとえば、Postman を使用して API を呼び出せます。

1771820580767-314.png

ワークフローに入力データを渡す​

ワークフローに入力データを渡す場合は、リクエスト本文の specificData プロパティに、エスケープした JSON 文字列を含めます。

1771820599994-165.png

ワークフローでは、次のことを行う必要があります。

  • String 型の入力引数 inputData を定義します。
  • Deserialize Json<T> アクティビティを使用して、入力文字列を JSON オブジェクトに変換し、後続の処理で使用します。

1771820619342-196.png

リクエストステータスの照会​

サーバーからの応答には、requestId というプロパティが含まれます。この値は、後でリクエストメッセージのステータスを照会するために使用できます。

1771820647729-876.png

1771820660862-792.png