

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à.

# Invia un lavoro che richiede dei limiti
<a name="job-limit-job"></a>

Puoi applicare un limite specificandolo come requisito dell'host per il lavoro o la fase del lavoro. Se non si specifica un limite in una fase e tale fase utilizza una risorsa associata, l'utilizzo della fase non viene conteggiato nel limite quando i lavori sono pianificati.

Alcuni mittenti di Deadline Cloud ti consentono di impostare un requisito di host. Puoi specificare il nome del requisito relativo all'importo del limite nel mittente per applicare il limite.

Se il mittente non supporta l'aggiunta dei requisiti dell'host, puoi anche applicare un limite modificando il modello di lavoro relativo al lavoro.

**Per applicare un limite a una fase di lavoro nel pacchetto di lavoro**

1. Apri il modello di lavoro per il lavoro utilizzando un editor di testo. Il modello di lavoro si trova nella directory dei pacchetti di lavoro relativa al lavoro. Per ulteriori informazioni, consulta [Job bundles](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html) nella *Deadline Cloud Developer Guide*.

1. Trova la definizione della fase a cui applicare il limite.

1. Aggiungi quanto segue alla definizione del passo. {{amount.name}}Sostituiscilo con il nome del requisito relativo all'importo del limite. Per un utilizzo tipico, è necessario impostare il `min` valore su 1.

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: amount.{{name}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "{{amount.name}}",
               "min": "1"
           }
       }
   }
   ```

------

   È possibile aggiungere più limiti a una fase di lavoro come segue. Sostituisci {{amount.name\_1}} e {{amount.name\_2}} inserisci i nomi dei requisiti relativi agli importi indicati nei tuoi limiti.

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: {{amount.name_1}}
         min: 1
       - name: {{amount.name_2}}
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "amount.{{name_1}}",
               "min": "1"
           },
           {
               "name": "amount.{{name_2}}",
               "min": "1"
           }
       }
   }
   ```

------

1. Salva le modifiche al modello di lavoro.

## Automatizza i limiti con gli hook di invio
<a name="job-limit-hooks"></a>

Se desideri applicare dei limiti a tutte le offerte di lavoro senza richiedere agli artisti di modificare manualmente i modelli di lavoro, puoi utilizzare un [hook di pre-invio](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md) per inserire automaticamente il requisito dell'host in ogni modello di lavoro al momento dell'invio.

Un hook di pre-invio è uno script che viene eseguito prima dell'invio del lavoro. L'hook può modificare i pacchetti di lavoro `template.yaml` per aggiungere `hostRequirements` gli importi da inserire per il limite. Questo approccio garantisce che ogni lavoro inviato tramite la CLI di Deadline Cloud o i mittenti DCC dichiari di aver bisogno della risorsa limitata.

Per un esempio funzionante completo, consulta l'esempio di [hook per l'invio dei limiti di licenza nell'archivio degli esempi](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) di Deadline Cloud.

## End-to-end esempio: Applica i limiti di licenza V-Ray
<a name="job-limit-example"></a>

Questo esempio mostra come impostare un limite per 5 licenze V-Ray fluttuanti e verificare che lo scheduler lo applichi.

**Per impostare e testare un limite di licenza V-Ray**

1. Crea il limite per la tua fattoria:

   ```
   aws deadline create-limit \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --display-name "VRay License" \
       --amount-requirement-name "amount.vray" \
       --max-count 5
   ```

1. Associa il limite alla tua coda:

   ```
   aws deadline create-queue-limit-association \
       --farm-id {{farm-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --queue-id {{queue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}} \
       --limit-id {{limit-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}}
   ```

1. Aggiungi il requisito dell'host al tuo modello di lavoro:

   ```
   specificationVersion: jobtemplate-2023-09
   name: My VRay Render
   steps:
     - name: Render
       hostRequirements:
         amounts:
           - name: amount.vray
             min: 1
       script:
         actions:
           onRun:
             command: vray
             args: ["-scene", "{{Param.SceneFile}}"]
   ```

1. Invia il lavoro. Lo scheduler consente l'esecuzione simultanea di un massimo `amount.vray` di 5 attività su tutti i lavori in coda. Le attività aggiuntive rimangono nello `READY` stato fino a quando non diventa disponibile uno slot.

Per verificare che il limite funzioni, impostalo `maxCount` temporaneamente su 1 e invia due lavori. Il primo processo viene eseguito mentre il secondo rimane nello `READY` stato fino al completamento del primo.