

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Soumettre une offre d'emploi nécessitant des limites
<a name="job-limit-job"></a>

Vous appliquez une limite en la spécifiant comme exigence d'hôte pour le poste ou l'étape du poste. Si vous ne spécifiez pas de limite dans une étape et que cette étape utilise une ressource associée, l'utilisation de l'étape n'est pas prise en compte dans la limite lorsque les tâches sont planifiées.

Certains émetteurs de Deadline Cloud vous permettent de définir des exigences en matière d'hôte. Vous pouvez spécifier le nom de l'exigence de montant de la limite dans l'expéditeur pour appliquer la limite.

Si votre auteur ne prend pas en charge l'ajout d'exigences en matière d'hôte, vous pouvez également appliquer une limite en modifiant le modèle de tâche correspondant à la tâche.

**Pour appliquer une limite à une étape du job bundle**

1. Ouvrez le modèle de tâche correspondant à la tâche à l'aide d'un éditeur de texte. Le modèle de tâche se trouve dans le répertoire des offres d'emploi correspondant à la tâche. Pour plus d'informations, consultez la section [ Offres d'emploi ](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html) dans le Guide * du développeur * Deadline Cloud.

1. Trouvez la définition de l'étape à laquelle appliquer la limite.

1. Ajoutez ce qui suit à la définition de l'étape. {{amount.name}}Remplacez-le par le nom du montant requis pour votre limite. Pour une utilisation normale, vous devez définir la `min` valeur sur 1.

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

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

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

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

------

   Vous pouvez ajouter plusieurs limites à une étape de tâche comme suit. Remplacez {{amount.name\_1}} et {{amount.name\_2}} par le nom des exigences de montant de vos limites.

------
#### [ 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. Enregistrez les modifications apportées au modèle de tâche.

## Automatisez les limites avec des crochets de soumission
<a name="job-limit-hooks"></a>

Si vous souhaitez appliquer des limites à toutes les offres d'emploi sans obliger les artistes à modifier manuellement les modèles de poste, vous pouvez utiliser un hook de pré-soumission pour injecter automatiquement l'exigence d'hôte dans chaque modèle de poste au moment de la soumission. Pour plus d'informations, consultez la section Hooks de [ soumission ](https://github.com/aws-deadline/deadline-cloud/blob/mainline/docs/submission-hooks.md) sur le GitHub site Web.

Un hook de pré-soumission est un script qui s'exécute avant que la tâche ne soit soumise. Le hook peut modifier les offres d'emploi `template.yaml` pour ajouter les `hostRequirements` montants saisis pour votre limite. Cette approche garantit que chaque tâche soumise via la CLI Deadline Cloud ou les soumissionnaires DCC déclare avoir besoin d'une ressource limitée.

Pour un exemple fonctionnel complet, consultez l'exemple de hook de soumission des limites de [ licence ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/submission_hooks/license_limits) dans le référentiel d'exemples Deadline Cloud sur le GitHub site Web.

## End-to-end exemple : appliquer les limites V-Ray de licence
<a name="job-limit-example"></a>

Cet exemple montre comment définir une limite pour 5 licences V-Ray flottantes et vérifier que le planificateur l'applique.

**Pour configurer et tester une limite V-Ray de licence**

1. Créez la limite pour votre ferme :

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

1. Associez la limite à votre file d'attente :

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

1. Ajoutez les exigences relatives à l'accueil à votre modèle de poste :

   ```
   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. Soumettez la tâche. Le planificateur permet d'exécuter au maximum 5 tâches simultanément sur toutes les tâches de la file d'attente. `amount.vray` Les tâches supplémentaires restent en cours jusqu'`READY`à ce qu'un créneau soit disponible.

Pour vérifier que la limite fonctionne, `maxCount` réglez-la temporairement sur 1 et soumettez deux tâches. La première tâche est exécutée tandis que la seconde reste dans `READY` cet état jusqu'à ce que la première soit terminée.