

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Elementos do modelo de trabalho para pacotes de tarefas
<a name="build-job-bundle-template"></a>

O modelo de trabalho define o ambiente de execução e os processos que são executados como parte de um trabalho do Deadline Cloud. Você pode criar parâmetros em um modelo para que ele possa ser usado para criar trabalhos que diferem somente nos valores de entrada, assim como uma função em uma linguagem de programação.

Quando você envia um trabalho para o Deadline Cloud, ele é executado em qualquer ambiente de fila aplicado à fila. Os ambientes de fila são criados usando a especificação de ambientes externos Open Job Description (OpenJD). Para obter detalhes, consulte o [modelo de ambiente](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#12-environment-template) no repositório OpenJD. GitHub 

Para uma introdução à criação de um trabalho com um modelo de trabalho do OpenJD, consulte [Introdução à criação de um trabalho](https://github.com/OpenJobDescription/openjd-specifications/wiki/Introduction-to-Creating-a-Job) no repositório do GitHub OpenJD. Informações adicionais podem ser encontradas em [Como os trabalhos são executados](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run). Há exemplos de modelos de trabalho no diretório do GitHub repositório OpenJD. `samples`

Você pode definir o modelo de trabalho no formato YAML (`template.yaml`) ou no formato JSON (`template.json`). Os exemplos nesta seção são mostrados no formato YAML.

Por exemplo, o modelo de trabalho da `blender_render` amostra define um parâmetro de entrada `BlenderSceneFile` como um caminho de arquivo:

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

A `userInterface` propriedade define o comportamento das interfaces de usuário geradas automaticamente para a linha de comando usando o `deadline bundle gui-submit` comando e nos plug-ins de envio de tarefas para aplicativos como o Autodesk Maya.

Neste exemplo, o widget de interface do usuário para inserir um valor para o `BlenderSceneFile` parâmetro é uma caixa de diálogo de seleção de arquivos que mostra somente arquivos. `.blend`

![Um widget de interface de usuário para inserir o parâmetro do arquivo de cena para um modelo de trabalho do OpenJD.](http://docs.aws.amazon.com/pt_br/deadline-cloud/latest/developerguide/images/blender_submit_scene_file_widget.png)


Para ver mais exemplos de uso do `userInteface` elemento, consulte a amostra [gui\_control\_showcase](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gui_control_showcase) no repositório em. [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) GitHub

As `dataFlow` propriedades `objectType` e controlam o comportamento dos anexos de tarefas quando você envia uma tarefa de um pacote de tarefas. Nesse caso, `objectType: FILE` e `dataFlow:IN` significa que o valor de `BlenderSceneFile` é um arquivo de entrada para anexos do trabalho.

Em contraste, a definição do `OutputDir` parâmetro tem `objectType: DIRECTORY` e`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.
```

O valor do `OutputDir` parâmetro é usado pelos anexos da tarefa como o diretório em que a tarefa grava os arquivos de saída.

Para obter mais informações sobre as `dataFlow` propriedades `objectType` e, consulte [JobPathParameterDefinition](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#22-jobpathparameterdefinition)a [especificação Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)

O restante da amostra do modelo de `blender_render` tarefa define o fluxo de trabalho como uma única etapa, com cada quadro da animação renderizado como uma tarefa separada:

```
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 exemplo, se o valor do `Frames` parâmetro for`1-10`, ele define 10 tarefas. Cada tarefa tem um valor diferente para o `Frame` parâmetro. Para executar uma tarefa:

1. Todas as referências de variáveis na `data` propriedade do arquivo incorporado são expandidas, por exemplo`--render-frame 1`.

1. O conteúdo da `data` propriedade é gravado em um arquivo no diretório de trabalho da sessão no disco.

1. O `onRun` comando da tarefa é resolvido `bash {{location of embedded file}}` e, em seguida, executado.

Para obter mais informações sobre arquivos incorporados, sessões e locais mapeados por caminhos, consulte [Como os trabalhos são executados](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) na especificação Open [Job Description](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run).

Há mais exemplos de modelos de trabalho no repositório [deadline-cloud-samples/job\_bundles](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles), bem como os [exemplos de modelos](https://github.com/OpenJobDescription/openjd-specifications/tree/mainline/samples) fornecidos com a especificação Open Job Descriptions.