View a markdown version of this page

Elementos de modelo de trabalho para pacotes de tarefas - Deadline Cloud

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 de modelo de trabalho para pacotes de tarefas

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 apenas 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 Environment 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 no repositório do GitHub OpenJD. Informações adicionais podem ser encontradas em Como os trabalhos são executados. 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.

O gui-submit comando abre uma caixa de diálogo de envio com uma guia Configurações de tarefa compartilhada para o nome, prioridade e fila de destino da tarefa, e uma guia de Job-specific configurações gerada a partir das definições de parâmetros no modelo de trabalho.

A caixa de diálogo de envio do trabalho mostra a guia Configurações do trabalho compartilhado com nome do trabalho, prioridade e campos de fazenda e fila.

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.

Para obter mais exemplos de uso do userInteface elemento, consulte a amostra gui_control_showcase no repositório deadline-cloud-samples em. https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline GitHub

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

Em contraste, a definição do OutputDir parâmetro tem objectType: DIRECTORY edataFlow: 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 do trabalho como o diretório em que o trabalho grava os arquivos de saída.

Quando você envia o pacote, a guia Anexos do trabalho da caixa de diálogo de envio lista os arquivos e diretórios de entrada detectados nessas propriedades, junto com os diretórios de saída nos quais o trabalho grava. Os caminhos mostrados em itálico foram detectados automaticamente; você pode adicionar outros que o remetente não encontrou.

A guia Anexos de tarefas de uma caixa de diálogo de envio, listando os arquivos de entrada detectados, os diretórios de entrada e o diretório de saída.

Para obter mais informações sobre as dataFlow propriedades objectType e, consulte JobPathParameterDefinition na especificação Open Job Description

O restante da amostra do modelo de blender_render trabalho define o fluxo de trabalho como uma única etapa, com cada quadro na 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 for1-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.

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

  3. 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 na especificação Open Job Description.

Há mais exemplos de modelos de trabalho no samples/job_bundles repositório deadline-cloud-, bem como os exemplos de modelos fornecidos com a especificação Open Job Descriptions.