

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Elementos de plantillas de trabajo para paquetes de trabajos
<a name="build-job-bundle-template"></a>

La plantilla de trabajo define el entorno de ejecución y los procesos que se ejecutan como parte de un trabajo de Deadline Cloud. Puede crear parámetros en una plantilla para utilizarla para crear trabajos que solo difieran en los valores de entrada, como ocurre con una función en un lenguaje de programación.

Cuando envías un trabajo a Deadline Cloud, se ejecuta en cualquier entorno de cola aplicado a la cola. Los entornos de colas se crean utilizando la especificación de entornos externos Open Job Description (OpenJD). Para obtener más información, consulte la [plantilla de entorno](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#12-environment-template) en el repositorio de GitHub OpenJD.

Para ver una introducción a la creación de un trabajo con una plantilla de trabajo de OpenJD, consulte [Introducción a la creación de un trabajo](https://github.com/OpenJobDescription/openjd-specifications/wiki/Introduction-to-Creating-a-Job) en el repositorio de GitHub OpenJD. Puede encontrar más información en [Cómo se ejecutan los trabajos](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run). Hay ejemplos de plantillas de trabajo en el `samples` directorio del GitHub repositorio de OpenJD.

Puede definir la plantilla de trabajo en formato YAML (`template.yaml`) o en formato JSON (`template.json`). Los ejemplos de esta sección se muestran en formato YAML.

Por ejemplo, la plantilla de trabajo del `blender_render` ejemplo define un parámetro de entrada `BlenderSceneFile` como una ruta de archivo:

```
- 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` propiedad define el comportamiento de las interfaces de usuario generadas automáticamente tanto en la línea de comandos mediante el `deadline bundle gui-submit` comando como en los complementos de envío de trabajos para aplicaciones como Autodesk Maya.

En este ejemplo, el widget de interfaz de usuario para introducir un valor para el `BlenderSceneFile` parámetro es un cuadro de diálogo de selección de archivos que muestra solo los archivos. `.blend`

![Un widget de interfaz de usuario para introducir el parámetro del archivo de escena para una plantilla de trabajo de OpenJD.](http://docs.aws.amazon.com/es_es/deadline-cloud/latest/developerguide/images/blender_submit_scene_file_widget.png)


Para ver más ejemplos del uso del `userInteface` elemento, consulta el ejemplo [gui\_control\_showcase](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gui_control_showcase) en el repositorio de. [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) GitHub

`dataFlow`Las propiedades `objectType` y controlan el comportamiento de los adjuntos de trabajo cuando se envía un trabajo desde un paquete de trabajos. En este caso, `objectType: FILE` y `dataFlow:IN` significan que el valor de `BlenderSceneFile` es un archivo de entrada para los trabajos adjuntos.

Por el contrario, la definición del `OutputDir` parámetro tiene `objectType: DIRECTORY` y`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.
```

Los adjuntos del trabajo utilizan el valor del `OutputDir` parámetro como directorio en el que el trabajo escribe los archivos de salida.

Para obtener más información sobre las `dataFlow` propiedades `objectType` y, consulte [JobPathParameterDefinition](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#22-jobpathparameterdefinition)la [especificación Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)

El resto del ejemplo de plantilla de `blender_render` trabajo define el flujo de trabajo como un solo paso, en el que cada fotograma de la animación se representa como una tarea independiente:

```
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}}
```

Por ejemplo, si el valor del `Frames` parámetro es`1-10`, define 10 tareas. Cada una de las tareas tiene un valor diferente para el `Frame` parámetro. Para ejecutar una tarea:

1. Por ejemplo, se expanden todas las referencias a variables de la `data` propiedad del archivo incrustado`--render-frame 1`.

1. El contenido de la `data` propiedad se escribe en un archivo del directorio de trabajo de la sesión en el disco.

1. El `onRun` comando de la tarea se resuelve en `bash {{location of embedded file}}` y, a continuación, se ejecuta.

Para obtener más información sobre los archivos incrustados, las sesiones y las ubicaciones con mapas de rutas, consulte [Cómo se ejecutan los trabajos](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) en la especificación Open [Job Description](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run).

Hay más ejemplos de plantillas de trabajo en el repositorio [deadline-cloud-samples/job\_bundles](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles), así como los [ejemplos de plantillas que se proporcionan con la especificación](https://github.com/OpenJobDescription/openjd-specifications/tree/mainline/samples) Open Job Descriptions.