

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
<a name="build-job-bundle-template"></a>

Il modello di lavoro definisce l'ambiente di runtime e i processi che vengono eseguiti come parte di un job di 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, questo viene eseguito in qualsiasi ambiente di coda applicato alla coda. Gli ambienti di coda vengono creati utilizzando la specifica degli ambienti esterni Open Job Description (OpenJD). Per i dettagli, consulta il [modello Environment nel repository](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#12-environment-template) OpenJD. GitHub 

Per un'introduzione alla creazione di un lavoro con un modello di lavoro OpenJD, vedi [Introduzione alla creazione di un lavoro](https://github.com/OpenJobDescription/openjd-specifications/wiki/Introduction-to-Creating-a-Job) nel repository OpenJD. GitHub [Ulteriori informazioni sono disponibili in Come vengono eseguiti i lavori.](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) Sono disponibili esempi di modelli di lavoro nella directory del GitHub repository OpenJD. `samples`

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

Ad esempio, il modello di lavoro per l'`blender_render`esempio 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 di invio dei lavori per applicazioni come Autodesk Maya.

In questo esempio, il widget dell'interfaccia utente per l'immissione di un valore per il `BlenderSceneFile` parametro è una finestra di dialogo per la 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.](http://docs.aws.amazon.com/it_it/deadline-cloud/latest/developerguide/images/blender_submit_scene_file_widget.png)


Per ulteriori esempi di utilizzo dell'`userInteface`elemento, consultate l'esempio [gui\_control\_showcase](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gui_control_showcase) nel repository su. [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) GitHub

Le `dataFlow` proprietà `objectType` and controllano il comportamento degli allegati delle offerte di lavoro quando invii un'offerta di lavoro da un pacchetto di offerte di lavoro. In questo caso, `objectType: FILE` `dataFlow:IN` significa che il valore di `BlenderSceneFile` è un file di input per gli allegati del lavoro.

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

Il valore del `OutputDir` parametro viene utilizzato dagli allegati del lavoro come directory in cui il lavoro scrive i file di output.

Per ulteriori informazioni sulle `dataFlow` proprietà `objectType` e, vedere [JobPathParameterDefinition](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#22-jobpathparameterdefinition)la [specifica Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)

Il resto dell'esempio di modello di `blender_render` lavoro definisce il flusso di lavoro del lavoro come un singolo passaggio, con ogni fotogramma dell'animazione renderizzato come un'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à. Ogni task ha un valore diverso per il `Frame` parametro. Per eseguire un'attività:

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

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

1. Il `onRun` comando dell'attività si risolve in `bash {{location of embedded file}}` e quindi viene eseguito.

Per ulteriori informazioni su file incorporati, sessioni e percorsi mappati, vedere [How job are run](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) [nella specifica Open Job](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) Description.

Esistono altri esempi di modelli di lavoro nel repository [deadline-cloud-samples/job\_bundles](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles), oltre agli [esempi di modelli](https://github.com/OpenJobDescription/openjd-specifications/tree/mainline/samples) forniti con la specifica Open Job Descriptions.