

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 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 请求提供对集群管理功能的编程访问。了解这些关键特征将有助于您有效地将 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 发行](https://slurm.schedmd.com/release_notes.html)说明中找到当前支持的 API 版本。
+ **网址结构**：Slurm REST API 的网址结构是。`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\$1 且启用 REST API 的 AWS PCS 集群。
+ **身份验证**：具有正确用户身份声明的有效 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>
  ```