

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# PCS でのジョブ管理に Slurm REST API AWS を使用する
<a name="slurm-rest-api-use"></a>

## Slurm REST API の概要
<a name="slurm-rest-api-use-overview"></a>

Slurm REST API は、HTTP リクエストを通じてクラスター管理関数へのプログラムによるアクセスを提供します。これらの主要な特性を理解することは、PCS で API AWS を効果的に使用するのに役立ちます。
+ **アクセスプロトコル**: API は、クラスターのプライベートネットワーク内の通信に HTTP (HTTPS ではなく) を使用します。
+ **接続の詳細**: クラスターのプライベート IP アドレスと`slurmrestd`ポート (通常は 6820) を使用して API にアクセスします。完全なベース URL 形式は です`http://<privateIpAddress>:6820`。
+ **API バージョニング**: API バージョンは Slurm のインストールに対応します。Slurm 25.05 の場合は、バージョン **v0.0.43** を使用します。バージョン番号は Slurm リリースごとに変わります。現在サポートされている API バージョンは、[Slurm リリースノート](https://slurm.schedmd.com/release_notes.html)に記載されています。
+ **URL 構造**: Slurm REST API の URL 構造は です`http://<privateIpAddress>:<port>/<api-version>/<endpoint>`。REST API エンドポイントの使用方法の詳細については、[Slurm ドキュメント](https://slurm.schedmd.com/rest_api.html)を参照してください。

## 前提条件
<a name="slurm-rest-api-use-prerequisites"></a>

Slurm REST API を使用する前に、以下を確認してください。
+ **クラスター設定**: Slurm 25.05 以降と REST API が有効になっている AWS PCS クラスター。
+ **認証**: 適切なユーザー ID クレームを持つ有効な JWT トークン。
+ **ネットワークアクセス**: ポート 6820 を許可するセキュリティグループとのクラスターの VPC 内の接続。

## 手順
<a name="slurm-rest-api-use-procedure"></a>

**REST API を使用してジョブを送信するには**

1. 必要なパラメータを使用してジョブ送信リクエストを作成します。

   ```
   {
     "job": {
       "name": "my-job",
       "partition": "compute",
       "nodes": 1,
       "tasks": 1,
       "script": "#!/bin/bash\necho 'Hello from Slurm REST API'"
     }
   }
   ```

1. HTTP POST リクエストを使用してジョブを送信します。

   ```
   curl -X POST \
     -H "Authorization: Bearer <jwt>" \
     -H "Content-Type: application/json" \
     -d '<job-json>' \
     https://<privateIpAddress>:6820/slurm/v0.0.43/job/submit
   ```

1. モニタリングの目的でレスポンスで返されるジョブ ID を書き留めます。

**ジョブのステータスをモニタリングするには**

1. 特定のジョブに関する情報を取得します。

   ```
   curl -X GET -H "Authorization: Bearer <jwt>" \
       https://<privateIpAddress>:6820/slurm/v0.0.43/job/<job-id>
   ```

1. 認証されたユーザーのすべてのジョブを一覧表示します。

   ```
   curl -X GET -H "Authorization: Bearer <jwt>" \
       https://<privateIpAddress>:6820/slurm/v0.0.43/jobs
   ```

**ジョブをキャンセルする方法**
+ DELETE リクエストを送信して、特定のジョブをキャンセルします。

  ```
  curl -X DELETE -H "Authorization: Bearer <jwt>" \
      https://<privateIpAddress>:6820/slurm/v0.0.43/job/<job-id>
  ```