

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS PCS 中使用 Slurm REST API 進行任務管理
<a name="slurm-rest-api-use"></a>

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

Slurm REST API 可透過 HTTP 請求，以程式設計方式存取叢集管理函數。了解這些關鍵特性可協助您有效地將 API 與 AWS PCS 搭配使用：
+ **存取通訊協定**：API 使用 HTTP （而非 HTTPS) 進行叢集私有網路內的通訊。
+ **連線詳細資訊**：使用叢集的私有 IP 地址和`slurmrestd`連接埠 （通常是 6820) 存取 API。完整的基本 URL 格式為 `http://<privateIpAddress>:6820`。
+ **API 版本控制**：API 版本對應於您的 Slurm 安裝。對於 Slurm 25.05，請使用版本 **v0.0.43**。版本編號會隨每個 Slurm 版本而變更。您可以在 [Slurm 版本備註中找到目前支援的 API 版本](https://slurm.schedmd.com/release_notes.html)。
+ **URL 結構**：Slurm REST API 的 URL 結構為 `http://<privateIpAddress>:<port>/<api-version>/<endpoint>`。您可以在 [Slurm 文件](https://slurm.schedmd.com/rest_api.html)中找到 REST API 端點的詳細用量資訊。

## 先決條件
<a name="slurm-rest-api-use-prerequisites"></a>

使用 Slurm REST API 之前，請確定您已：
+ **叢集組態**：已啟用 Slurm 25.05\$1 和 REST API 的 AWS PCS 叢集。
+ **身分驗證**：具有適當使用者身分宣告的有效 JWT 字符。
+ **網路存取**：叢集 VPC 內的連線，以及允許連接埠 6820 的安全群組。

## 程序
<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>
  ```