

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando a API REST do Slurm para gerenciamento de tarefas no PCS AWS
<a name="slurm-rest-api-use"></a>

## Visão geral da API Slurm REST
<a name="slurm-rest-api-use-overview"></a>

A API REST do Slurm fornece acesso programático às funções de gerenciamento de cluster por meio de solicitações HTTP. A compreensão dessas características principais ajudará você a usar a API com o AWS PCS de forma eficaz:
+ **Protocolo de acesso**: a API usa HTTP (não HTTPS) para comunicação na rede privada do seu cluster.
+ **Detalhes da conexão**: acesse a API usando o endereço IP privado do seu cluster e a `slurmrestd` porta (normalmente 6820). O formato completo do URL base é`http://<privateIpAddress>:6820`.
+ Controle de **versão da API: a** versão da API corresponde à sua instalação do Slurm. **Para o Slurm 25.05, use a versão v0.0.43.** O número da versão muda a cada lançamento do Slurm. Você pode encontrar as versões da API atualmente suportadas nas notas de [lançamento do Slurm](https://slurm.schedmd.com/release_notes.html).
+ **Estrutura de URL**: A estrutura de URL para a API REST do Slurm é. `http://<privateIpAddress>:<port>/<api-version>/<endpoint>` Informações detalhadas de uso dos endpoints da API REST podem ser encontradas na documentação do [Slurm](https://slurm.schedmd.com/rest_api.html).

## Pré-requisitos
<a name="slurm-rest-api-use-prerequisites"></a>

Antes de usar a API REST do Slurm, certifique-se de ter:
+ **Configuração de cluster**: cluster AWS PCS com Slurm 25.05\$1 e API REST habilitada.
+ **Autenticação**: token JWT válido com declarações de identidade de usuário adequadas.
+ **Acesso à rede**: conectividade na VPC do seu cluster com um grupo de segurança que permite a porta 6820.

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

**Para enviar um trabalho usando a API REST**

1. Crie uma solicitação de envio de trabalho com os parâmetros necessários:

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

1. Envie o trabalho usando uma solicitação 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. Anote o ID do trabalho retornado na resposta para fins de monitoramento.

**Para monitorar o status do trabalho**

1. Obtenha informações sobre um trabalho específico:

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

1. Liste todos os trabalhos do usuário autenticado:

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

**Para cancelar um trabalho**
+ Envie uma solicitação DELETE para cancelar um trabalho específico:

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