

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 specifichi un limite in una fase e tale fase utilizza una risorsa associata, l'utilizzo della fase non viene conteggiato nel limite quando vengono pianificati i lavori.

Alcuni inviatori di Deadline Cloud ti consentono di impostare un requisito per l'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 per l'host, puoi anche applicare un limite modificando il modello di lavoro relativo al lavoro.

**Per applicare un limite a una fase del job bundle**

1. Apri il modello di lavoro per il lavoro utilizzando un editor di testo. Il modello di lavoro si trova nella cartella del job bundle relativa al job. Per ulteriori informazioni, consulta [ Job bundle ](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. Aggiungete quanto segue alla definizione del passo. Sostituisci {{amount.name}} con l'importo richiesto il nome del limite. Per un uso 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 del lavoro come segue. Sostituisci {{amount.name\_1}} e {{amount.name\_2}} con i nomi dei requisiti di importo dei 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 tutti gli invii di lavoro senza richiedere agli artisti di modificare manualmente i modelli di lavoro, puoi utilizzare un hook di [ pre-invio per inserire automaticamente i requisiti dell'host in ogni modello di lavoro ](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md) al momento dell'invio.

Un hook di pre-invio è uno script che viene eseguito prima dell'invio del lavoro. L'hook può modificare i job bundle `template.yaml` per aggiungere `hostRequirements` gli importi previsti 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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) nel repository di esempi di Deadline Cloud.

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

Questo esempio mostra come impostare un limite per 5 licenze V-Ray mobili 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
   parameterDefinitions:
     - name: SceneFile
       type: PATH
       objectType: FILE
       dataFlow: IN
   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 `READY` nello stato fino a quando non diventa disponibile uno slot.

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