

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo dell'API REST Slurm per la gestione dei lavori in PCS AWS
<a name="slurm-rest-api-use"></a>

## Panoramica dell'API REST Slurm
<a name="slurm-rest-api-use-overview"></a>

L'API REST di Slurm fornisce l'accesso programmatico alle funzioni di gestione dei cluster tramite richieste HTTP. La comprensione di queste caratteristiche chiave ti aiuterà a utilizzare efficacemente l'API con PCS: AWS 
+ **Protocollo di accesso**: l'API utilizza HTTP (non HTTPS) per la comunicazione all'interno della rete privata del cluster.
+ **Dettagli di connessione**: accedi all'API utilizzando l'indirizzo IP privato del cluster e la `slurmrestd` porta (in genere 6820). Il formato URL di base completo è`http://<privateIpAddress>:6820`.
+ Controllo **delle versioni dell'API**: La versione dell'API corrisponde all'installazione di Slurm. **Per Slurm 25.05, usa la versione v0.0.43.** Il numero di versione cambia con ogni versione di Slurm. Puoi trovare le versioni delle API attualmente supportate nelle note di rilascio di [Slurm](https://slurm.schedmd.com/release_notes.html).
+ **Struttura dell'URL**: La struttura dell'URL per l'API REST di Slurm è. `http://<privateIpAddress>:<port>/<api-version>/<endpoint>` [Informazioni dettagliate sull'utilizzo degli endpoint dell'API REST sono disponibili nella documentazione di Slurm.](https://slurm.schedmd.com/rest_api.html)

## Prerequisiti
<a name="slurm-rest-api-use-prerequisites"></a>

Prima di utilizzare l'API REST di Slurm, assicurati di avere:
+ **Configurazione del cluster**: cluster AWS PCS con Slurm 25.05\$1 e API REST abilitate.
+ **Autenticazione**: token JWT valido con affermazioni di identità utente corrette.
+ **Accesso alla rete**: connettività all'interno del VPC del cluster con un gruppo di sicurezza che consente la porta 6820.

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

**Per inviare un lavoro utilizzando l'API REST**

1. Crea una richiesta di invio di lavoro con i parametri richiesti:

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

1. Invia il lavoro utilizzando una richiesta 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. Annota l'ID del lavoro restituito nella risposta a scopo di monitoraggio.

**Per monitorare lo stato del lavoro**

1. Ottieni informazioni su un lavoro specifico:

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

1. Elenca tutti i lavori per l'utente autenticato:

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

**Come annullare un processo**
+ Invia una richiesta DELETE per annullare un lavoro specifico:

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