# プールを管理する

プールは Treasure Workflow API を通じて管理します。各プールは一意の名前と並行実行数の上限を持ち、上限はプール内で同時に実行できるアテンプトの最大数を制限します。各エンドポイントの完全なリクエストとレスポンスのスキーマについては、 [Treasure Workflow API リファレンス](/apis/workflow/pool)を参照してください。

## 前提条件

- Treasure AI アカウント管理者の権限
- [マスター API キー](/ja/products/my-settings/getting-your-api-keys)
- リージョンに対応した Treasure Workflow API のベース URL 。全リストについては[エンドポイント](/apis/endpoints/endpoints)を参照してください。本ページの例では US エンドポイント `https://api-workflow.treasuredata.com` を使用しています。


## デフォルトプールの上限が調整される仕組み

すべてのプールの並行実行数の上限の合計は、常にアカウントの並行実行数の上限の合計と等しくなります。プールを作成、更新、削除すると、 Treasure Workflow がこの合計を保つようにデフォルトプールの上限を調整します。デフォルトプールの上限を直接変更することはできません。

たとえば、並行実行数の上限の初期値が 200 のデフォルトプールのみを持つアカウントから始まるとします。

| プール名 | 並行実行数の上限 |
|  --- | --- |
| default | 200 |


並行実行数の上限を 50 とする「activation」という名前のプールを作成します。デフォルトプールの上限は 50 減少します。

| プール名 | 並行実行数の上限 |
|  --- | --- |
| default | 150 |
| activation | 50 |


activation プールの上限を 70 に引き上げます。デフォルトプールの上限はさらに 20 減少します。

| プール名 | 並行実行数の上限 |
|  --- | --- |
| default | 130 |
| activation | 70 |


activation プールを削除します。並行実行数の上限 70 はデフォルトプールに戻ります。

| プール名 | 並行実行数の上限 |
|  --- | --- |
| default | 200 |


デフォルトプールの並行実行数の上限の初期値については、 [Treasure Workflow の前提条件と制限事項](/ja/requirements-and-limitations/treasure-workflow-prerequisites-and-limitations)を参照してください。

## 制約

- プールの並行実行数の上限を、そのプールで現在実行中のアテンプト数よりも小さくすることはできません。これは、新しいプールを作成したり、別のプールの上限を引き上げたりすることでデフォルトプールの上限が間接的に減少する場合にも当てはまります。
- 終了していないアテンプト（ブロック中、キュー待ち、実行中のいずれか）がプールに残っている間は、プールを削除できません。
- そのプールを参照する[プールルール](/ja/products/customer-data-platform/data-workbench/workflows/pool/managing-pool-rules)がある間は、プールを削除できません。プールを削除する前に、参照しているルールを削除または更新してください。
- デフォルトプールは削除や名前の変更ができません。また、その並行実行数の上限を直接設定することもできません。


## プールを作成する


```shell
curl -X POST \
    -H 'Authorization: TD1 <api_key>' \
    -H 'Content-Type: application/json' \
    -d '{"name": "activation", "concurrencyLimit": 50}' \
    https://api-workflow.treasuredata.com/api/pools
```

プール名はアカウント内で一意でなければなりません。新しいプールの並行実行数の上限は、デフォルトプールの現在の空きスロット数（デフォルトプールの並行実行数の上限から現在実行中のアテンプト数を引いたもの）以下でなければなりません。

## プールを一覧表示する


```shell
curl -H 'Authorization: TD1 <api_key>' \
    https://api-workflow.treasuredata.com/api/pools
```

## プールを取得する


```shell
curl -H 'Authorization: TD1 <api_key>' \
    https://api-workflow.treasuredata.com/api/pools/<pool_id>
```

## プールを更新する


```shell
curl -X PATCH \
    -H 'Authorization: TD1 <api_key>' \
    -H 'Content-Type: application/json' \
    -d '{"concurrencyLimit": 70}' \
    https://api-workflow.treasuredata.com/api/pools/<pool_id>
```

プールの上限を引き上げると、その差分はデフォルトプールから取り出されます。プールの上限を引き下げると、その差分はデフォルトプールに戻されます。

## プールを削除する


```shell
curl -X DELETE \
    -H 'Authorization: TD1 <api_key>' \
    https://api-workflow.treasuredata.com/api/pools/<pool_id>
```

プールに割り当てられたすべてのアテンプトが終了し、かつ、そのプールを参照するプールルールがない場合にのみ、プールを削除できます。

プール管理の操作は Premium Audit Log のイベントとして記録されます。イベント名とそれぞれが対象とする操作については [Premium Audit Log イベント](/ja/products/control-panel/security/auditlogs/premium-audit-log-events)を参照してください。

## 次のステップ

カスタムプールをひとつ以上作成したら、正しいプールに正しいアテンプトを割り当てるために[プールルール](/ja/products/customer-data-platform/data-workbench/workflows/pool/managing-pool-rules)を記述してください。