View a markdown version of this page

Elementi del modello di lavoro per i pacchetti di lavoro - Deadline Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elementi del modello di lavoro per i pacchetti di lavoro

Il modello di lavoro definisce l'ambiente di runtime e i processi eseguiti come parte di un job Deadline Cloud. È possibile creare parametri in un modello in modo che possa essere utilizzato per creare lavori che differiscono solo nei valori di input, proprio come una funzione in un linguaggio di programmazione.

Quando invii un lavoro a Deadline Cloud, viene eseguito in qualsiasi ambiente di coda applicato alla coda. Gli ambienti di coda sono creati utilizzando la specifica degli ambienti esterni Open Job Description (OpenJD). Per i dettagli, consulta il modello Environment nel repository OpenJD. GitHub

Per un'introduzione alla creazione di un lavoro con un modello di lavoro OpenJD, vedere Introduzione alla creazione di un lavoro nel repository OpenJD. GitHub Ulteriori informazioni possono essere trovate in How jobs are run. https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run Ci sono esempi di modelli di lavoro nella directory del GitHub repository OpenJD. samples

È possibile definire il modello di lavoro in formato YAML (template.yaml) o JSON (). template.json Gli esempi in questa sezione sono mostrati in formato YAML.

Ad esempio, il modello di lavoro per l'blender_renderesempio definisce un parametro di input BlenderSceneFile come percorso di file:

- 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 proprietà definisce il comportamento delle interfacce utente generate automaticamente sia per la riga di comando che utilizza il deadline bundle gui-submit comando sia all'interno dei plugin per l'invio dei lavori per applicazioni come Autodesk Maya.

Il gui-submit comando apre una finestra di dialogo di invio con una scheda Impostazioni condivise per il nome, la priorità e la coda di destinazione del lavoro e una scheda delle Job-specific impostazioni generata dalle definizioni dei parametri nel modello di lavoro.

La finestra di dialogo di invio del lavoro mostra la scheda Impostazioni del lavoro condiviso con i campi nome del lavoro, priorità e farm e queue.

In questo esempio, il widget dell'interfaccia utente per l'immissione di un valore per il BlenderSceneFile parametro è una finestra di dialogo di selezione dei file che mostra solo i file. .blend

Un widget di interfaccia utente per l'immissione del parametro del file di scena per un modello di lavoro OpenJD.

Per altri esempi di utilizzo dell'userIntefaceelemento, vedi l'esempio gui_control_showcase nel repository deadline-cloud-samples su. https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline GitHub

Le dataFlow proprietà objectType and controllano il comportamento degli allegati al lavoro quando invii un lavoro da un pacchetto di offerte. In questo caso, objectType: FILE e dataFlow:IN indicano che il valore di BlenderSceneFile è un file di input per gli allegati di lavoro.

Al contrario, la definizione del OutputDir parametro ha 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.

Il valore del OutputDir parametro viene utilizzato dai job attachments come directory in cui il job scrive i file di output.

Quando inviate il pacchetto, la scheda Job attachments della finestra di dialogo di invio elenca i file e le directory di input rilevati da queste proprietà, insieme alle directory di output in cui il job scrive. I percorsi mostrati in corsivo sono stati rilevati automaticamente; puoi aggiungerne altri che il mittente non ha trovato.

La scheda Allegati del lavoro di una finestra di dialogo di invio, che elenca i file di input rilevati, le directory di input e la directory di output.

Per ulteriori informazioni sulle dataFlow proprietà objectType e, consultate la specifica Open JobPathParameterDefinition Job Description

Il resto dell'esempio del modello di blender_render lavoro definisce il flusso di lavoro come un singolo passaggio in cui ogni fotogramma dell'animazione viene renderizzato come attività separata:

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

Ad esempio, se il valore del Frames parametro è1-10, definisce 10 attività. Ciascuna ha un'attività con un valore diverso per il Frame parametro. Per eseguire un'operazione:

  1. Ad esempio, tutti i riferimenti alle variabili nella data proprietà del file incorporato vengono espansi--render-frame 1.

  2. Il contenuto della data proprietà viene scritto in un file nella directory di lavoro della sessione su disco.

  3. Il onRun comando dell'operazione viene risolto bash location of embedded file e quindi eseguito.

Per ulteriori informazioni sui file incorporati, sulle sessioni e sulle posizioni mappate sul percorso, vedi How jobs are run nella specifica Open Job Description. https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run

Ci sono altri esempi di modelli di lavoro nel deadline-cloud- samples/job_bundles repository, oltre agli esempi di modelli forniti con la specifica Open Job Descriptions.