Center のエージェントプールの使用方法
エージェントプール を使用すると、実行のたびに特定のエージェントを選択することなく、1 つのワークフローをエージェントのグループ上で実行できます。Center はプールに対するリクエストのキューを管理し、プール内で次に空いているエージェントが各リクエストを取得して実行します。同じワークフローのリクエストを多数処理する必要がある場合 (たとえば、他のシステムから届くリクエストや、決まった時刻に繰り返し実行する処理) に、エージェントプールを使用します。
エージェントプールの仕組み
- 1 つのワークフローと 1 つ以上のエージェントを指定して、エージェントプールを作成します。
- プールにリクエストを送信します。各リクエストはキューアイテムになります。
- プール内の空いているエージェントがキューアイテムを取得し、ワークフローを実行します。すべてのエージェントが使用中の場合、キューアイテムは 新規 ステータスのまま待機します。
エージェントプールとエージェントグループ
エージェントグループとエージェントプールはどちらもエージェントを含みますが、役割が異なります。
| エージェントグループ | エージェントプール | |
|---|---|---|
| 役割 | ワークフローをデプロイできるように、エージェントをグループ化します。 | 1 つのワークフローを実行するエージェントをグループ化し、空いているエージェントが各リクエストを取得できるようにします。 |
| ワークフローとの関係 | ワークフローは、パッケージとエージェントグループを関連付けます。パッケージは、そのグループに属するすべてのエージェントマシンに配布されます。 | プールは 1 つのワークフローに対して作成します。プール内のエージェントは、そのワークフローのエージェントグループに属している必要があります。 |
| スケジュールでの扱い | 新しいスケジュールの作成 ダイアログの ターゲットタイプ として選択できます。 | 新しいスケジュールの作成 ダイアログの ターゲットタイプ として選択できます (ご利用の Center が対応している場合。手順 3 のオプション A を参照)。 |
要するに、エージェントグループはワークフローがデプロイされる場所であり、エージェントプールは、そのエージェントのうちワークフローに対するリクエストを受け付けるグループです。
エージェントプールを設定して使用するには、次の手順に従います。
- 前提条件: 必要なものを準備します。
- エージェントプールの作成: すべての環境で必須です。
- エージェントプールのトリガー: 次の 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 で新しいエージェントプールを作成するには、エージェント > エージェントプール > 新規作成 に移動します。

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

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

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

3. エージェントプールのトリガー
エージェントプールを作成したら、次の 2 つのオプションから どちらか 1 つ を選択して、プールにリクエストを送信します。2 つのオプションは代替方法であり、連続した手順ではありません。
| オプション A: スケジュール | オプション B: サードパーティクライアント | |
|---|---|---|
| 使用する場面 | ワークフローを決まった時刻または間隔で自動的に実行する必要がある場合。 | 他のシステムやツールが、必要なときにワークフローを開始する必要がある場合。 |
| 仕組み | Center が、スケジュールされた時刻ごとにキューアイテムを作成します。 | クライアントが HTTP リクエストを送信し、Center がキューアイテムを作成します。 |
| マネージドトークン | 不要 | 必須 |
| 利用可否 | オンプレミス、Center v4.0.0.5 以降。Center Cloud では利用できません。 | Center Cloud およびオンプレミス |
Center Cloud では、新しいスケジュールの作成 ダイアログの 実行ターゲット タブにエージェントが個別に一覧表示されるだけで、選択できるエージェントプールはありません。この場合は、オプション B を使用してください。

確認するには、オートメーション > スケジュール > 新規作成 を開き、実行ターゲット タブを選択します。ターゲットタイプ の一覧に エージェントプール がある場合は、オプション A を使用できます。
オプション A: スケジュールを使用してトリガーする (オンプレミスのみ)
ワークフローを決まった時刻または間隔で自動的に実行する必要がある場合は、このオプションを使用します。このオプションではマネージドトークンは不要です。このオプションは Center Cloud では利用できません。Center Cloud をご利用の場合は、オプション B に進んでください。
akaBot Center のスケジュール機能を使用して、エージェントプールを自動的にトリガーできます。
オートメーション > スケジュール > 新規作成 に移動します。

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

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

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

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


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


リクエストを送信するには、次のものが必要です。
- エージェントプールキー
- 有効な マネージドトークン
たとえば、Postman を使用して API を呼び出せます。

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

ワークフローでは、次のことを行う必要があります。
- String 型の入力引数 inputData を定義します。
- Deserialize Json<T> アクティビティを使用して、入力文字列を JSON オブジェクトに変換し、後続の処理で使用します。

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

