

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.

# Éléments de modèles de tâches pour les offres d'emploi
<a name="build-job-bundle-template"></a>

Le modèle de tâche définit l'environnement d'exécution et les processus exécutés dans le cadre d'une tâche Deadline Cloud. Vous pouvez créer des paramètres dans un modèle afin qu'il puisse être utilisé pour créer des tâches dont les valeurs d'entrée ne diffèrent que par les valeurs d'entrée, un peu comme une fonction dans un langage de programmation.

Lorsque vous soumettez une tâche à Deadline Cloud, elle s'exécute dans tous les environnements de file d'attente appliqués à la file d'attente. Les environnements de file d'attente sont créés à l'aide de la spécification des environnements externes Open Job Description (OpenJD). Pour plus de détails, consultez le [modèle d'environnement](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#12-environment-template) dans le GitHub référentiel OpenJD.

Pour une introduction à la création d'une tâche à l'aide d'un modèle de tâche OpenJD, voir [Présentation de la création d'une tâche](https://github.com/OpenJobDescription/openjd-specifications/wiki/Introduction-to-Creating-a-Job) dans le référentiel OpenJD GitHub . Vous trouverez des informations supplémentaires dans la section [Comment les tâches sont exécutées](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run). Vous trouverez des exemples de modèles de tâches dans le `samples` répertoire du GitHub référentiel OpenJD.

Vous pouvez définir le modèle de tâche au format YAML (`template.yaml`) ou au format JSON (`template.json`). Les exemples de cette section sont présentés au format YAML.

Par exemple, le modèle de tâche de l'`blender_render`exemple définit un paramètre d'entrée `BlenderSceneFile` sous la forme d'un chemin de fichier :

```
- name: BlenderSceneFile
  type: PATH
  objectType: FILE
  dataFlow: IN
  userInterface:
    control: CHOOSE_INPUT_FILE
    label: Blender Scene File
    groupLabel: Render Parameters
    fileFilters:
    - label: Blender Scene Files
      patterns: ["*.blend"]
    - label: All Files
      patterns: ["*"]
  description: >
    Choose the Blender scene file to render. Use the 'Job Attachments' tab
    to add textures and other files that the job needs.
```

La `userInterface` propriété définit le comportement des interfaces utilisateur générées automatiquement à la fois pour la ligne de commande à l'aide de la `deadline bundle gui-submit` commande et dans les plug-ins de soumission de tâches pour des applications telles qu'Autodesk Maya.

Dans cet exemple, le widget d'interface utilisateur permettant de saisir une valeur pour le `BlenderSceneFile` paramètre est une boîte de dialogue de sélection de fichiers qui affiche uniquement les fichiers. `.blend`

![Un widget d'interface utilisateur permettant de saisir le paramètre du fichier de scène pour un modèle de tâche OpenJD.](http://docs.aws.amazon.com/fr_fr/deadline-cloud/latest/developerguide/images/blender_submit_scene_file_widget.png)


Pour d'autres exemples d'utilisation de l'`userInteface`élément, consultez l'exemple [gui\_control\_showcase](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gui_control_showcase) dans le référentiel sur. [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) GitHub

Les `dataFlow` propriétés `objectType` et contrôlent le comportement des pièces jointes lorsque vous soumettez une tâche à partir d'un ensemble de tâches. Dans ce cas, `objectType: FILE` `dataFlow:IN` cela signifie que la valeur de `BlenderSceneFile` est un fichier d'entrée pour les pièces jointes aux tâches.

En revanche, la définition du `OutputDir` paramètre a `objectType: DIRECTORY` et `dataFlow: OUT` :

```
- name: OutputDir
  type: PATH
  objectType: DIRECTORY
  dataFlow: OUT
  userInterface:
    control: CHOOSE_DIRECTORY
    label: Output Directory
    groupLabel: Render Parameters
  default: "./output"
  description: Choose the render output directory.
```

La valeur du `OutputDir` paramètre est utilisée par les pièces jointes aux tâches comme répertoire dans lequel la tâche écrit les fichiers de sortie.

Pour plus d'informations sur les `dataFlow` propriétés `objectType` et, voir [JobPathParameterDefinition](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#22-jobpathparameterdefinition)la [spécification Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)

Le reste de l'exemple de modèle de `blender_render` tâche définit le flux de travail de la tâche comme une seule étape, chaque image de l'animation étant rendue comme une tâche distincte :

```
steps:
- name: RenderBlender
  parameterSpace:
    taskParameterDefinitions:
    - name: Frame
      type: INT
      range: "{{Param.Frames}}"
  script:
    actions:
      onRun:
        command: bash
        # Note: {{Task.File.Run}} is a variable that expands to the filename on the worker host's
        # disk where the contents of the 'Run' embedded file, below, is written.
        args: ['{{Task.File.Run}}']
    embeddedFiles:
      - name: Run
        type: TEXT
        data: |
          # Configure the task to fail if any individual command fails.
          set -xeuo pipefail

          mkdir -p '{{Param.OutputDir}}'

          blender --background '{{Param.BlenderSceneFile}}' \
                  --render-output '{{Param.OutputDir}}/{{Param.OutputPattern}}' \
                  --render-format {{Param.Format}} \
                  --use-extension 1 \
                  --render-frame {{Task.Param.Frame}}
```

Par exemple, si la valeur du `Frames` paramètre est`1-10`, il définit 10 tâches. Chaque tâche possède une valeur différente pour le `Frame` paramètre. Pour exécuter une tâche, procédez comme suit :

1. Toutes les références de variables de la `data` propriété du fichier intégré sont étendues, par exemple`--render-frame 1`.

1. Le contenu de la `data` propriété est écrit dans un fichier du répertoire de travail de la session sur le disque.

1. La `onRun` commande de la tâche se résout en `bash {{location of embedded file}}` puis s'exécute.

Pour plus d'informations sur les fichiers intégrés, les sessions et les emplacements mappés par des chemins, consultez la section [Comment les tâches sont exécutées](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) dans la spécification Open [Job Description](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run).

Vous trouverez d'autres exemples de modèles de tâches dans le référentiel [deadline-cloud-samples/job\_bundles](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles), ainsi que les [exemples de modèles fournis avec la spécification](https://github.com/OpenJobDescription/openjd-specifications/tree/mainline/samples) Open Job Descriptions.