

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

# Modelli Open Job Description (OpenJD) per Deadline Cloud
Pacchetti Job

Un *job bundle* è uno degli strumenti che usi per definire i lavori per AWS Deadline Cloud. Raggruppano un modello di [Open Job Description (OpenJD)](https://github.com/OpenJobDescription/openjd-specifications) con informazioni aggiuntive come file e directory che i lavori utilizzano con gli allegati del lavoro. Utilizzi l'interfaccia a riga di comando (CLI) di Deadline Cloud per utilizzare un pacchetto di lavori per inviare lavori per l'esecuzione di una coda.

Un job bundle è una struttura di directory che contiene un modello di lavoro OpenJD, altri file che definiscono il lavoro e file specifici del lavoro richiesti come input per il lavoro. È possibile specificare i file che definiscono il lavoro come file YAML o JSON.

L'unico file richiesto è o. `template.yaml` `template.json` Puoi anche includere i seguenti file:

```
/template.yaml (or template.json)
/asset_references.yaml (or asset_references.json)
/parameter_values.yaml (or parameter_values.json)
/other job-specific files and directories
```

Utilizza un pacchetto di lavori per l'invio di lavori personalizzati con la CLI di Deadline Cloud e un allegato di lavoro, oppure puoi utilizzare un'interfaccia grafica di invio. Ad esempio, quello che segue è l'esempio di Blender di. GitHub Per eseguire l'esempio, utilizzate il seguente comando nella directory di [esempio di Blender](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles):

```
deadline bundle gui-submit blender_render
```

![\[Un esempio di interfaccia personalizzata per l'invio di lavori per Blender.\]](http://docs.aws.amazon.com/it_it/deadline-cloud/latest/developerguide/images/blender_submit_shared_settings.png)


Il pannello delle impostazioni specifiche del lavoro viene generato dalle `userInterface` proprietà dei parametri del lavoro definiti nel modello di lavoro.

Per inviare un lavoro utilizzando la riga di comando, è possibile utilizzare un comando simile al seguente

```
deadline bundle submit \
    --yes \
    --name Demo \
     -p BlenderSceneFile=location of scene file \
     -p OutputDir=file pathe for job output \
      blender_render/
```

Oppure puoi usare la `deadline.client.api.create_job_from_job_bundle` funzione nel pacchetto `deadline` Python.

Tutti i plugin per l'invio dei lavori forniti con Deadline Cloud, come il plug-in Autodesk Maya, generano un pacchetto di lavori per l'invio e quindi utilizzano il pacchetto Deadline Cloud Python per inviare il lavoro a Deadline Cloud. Puoi vedere i pacchetti di offerte di lavoro inviati nella directory della cronologia dei lavori della tua postazione di lavoro o utilizzando un mittente. È possibile trovare la directory della cronologia delle mansioni con il seguente comando:

```
deadline config get settings.job_history_dir
```

Quando il tuo lavoro è in esecuzione su un lavoratore Deadline Cloud, ha accesso a variabili di ambiente che forniscono informazioni sul lavoro. Le variabili di ambiente sono:


| Nome della variabile | Disponibilità | 
| --- | --- | 
| DEADLINE\$1FARM\$1ID | Tutte le operazioni | 
| DEADLINE\$1FLOTTE\$1ID | Tutte le operazioni | 
| ID\$1DEADLINE\$1WORKER | Tutte le operazioni | 
| ID\$1CODA DI SCADENZA | Tutte le operazioni | 
| ID\$1DEADLINE\$1JOB\$1ID | Tutte le operazioni | 
| ID\$1FASE DI SCADENZA | Azioni relative alle attività | 
| DEADLINE\$1SESSION\$1ID | Tutte le operazioni | 
| ID\$1ATTIVITÀ\$1SCADENZA | Azioni relative alle attività | 
| DEADLINE\$1SESSIONACTION\$1ID | Tutte le operazioni | 

**Topics**
+ [

# Elementi del modello di lavoro per i pacchetti di lavoro
](build-job-bundle-template.md)
+ [

# Suddivisione delle attività per i modelli di lavoro
](build-job-bundle-chunking.md)
+ [

# Valori dei parametri, elementi per i job bundle.
](build-job-bundle-parameters.md)
+ [

# Elementi di riferimento delle risorse per i pacchetti di lavoro
](build-job-bundle-assets.md)

# Elementi del modello di lavoro per i pacchetti di lavoro
Elementi del modello Job

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\$1control\$1showcase](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\$1bundles](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.

# Suddivisione delle attività per i modelli di lavoro
Suddivisione delle attività

La suddivisione in blocchi delle attività consente di raggruppare più attività in un'unica unità di lavoro denominata chunk. In un lavoro di rendering, ad esempio, ciò significa che Deadline Cloud può inviare più frame insieme anziché un frame per chiamata di comando. Ciò riduce il sovraccarico di avvio delle applicazioni per ogni attività e riduce la durata totale del lavoro. Per i dettagli, consulta [Esecuzione di più frame alla volta nel wiki](https://github.com/OpenJobDescription/openjd-specifications/wiki/Job-Intro-03-Creating-a-Job-Template#42-running-multiple-frames-at-a-time) di OpenJD.

OpenJD supporta estensioni che aggiungono funzionalità opzionali ai modelli di lavoro. La suddivisione in blocchi delle attività viene abilitata aggiungendo l'estensione. `TASK_CHUNKING` Per utilizzare la suddivisione in blocchi, aggiungi l'estensione al tuo modello di lavoro e utilizza il tipo di parametro dell'`CHUNK[INT]`attività. Invia lavori suddivisi in blocchi utilizzando lo stesso comando. `deadline bundle submit` Ad esempio, il seguente modello di lavoro esegue il rendering dei frame in blocchi di 10:

```
specificationVersion: 'jobtemplate-2023-09'
extensions:
  - TASK_CHUNKING
name: Blender Render with Contiguous Chunking
parameterDefinitions:
  - name: BlenderSceneFile
    type: PATH
    objectType: FILE
    dataFlow: IN
  - name: Frames
    type: STRING
    default: "1-100"
  - name: OutputDir
    type: PATH
    objectType: DIRECTORY
    dataFlow: OUT
    default: "./output"
steps:
  - name: RenderBlender
    parameterSpace:
      taskParameterDefinitions:
        - name: Frame
          type: CHUNK[INT]
          range: "{{Param.Frames}}"
          chunks:
            defaultTaskCount: 10
            rangeConstraint: CONTIGUOUS
    script:
      actions:
        onRun:
          command: bash
          args: ["{{Task.File.Run}}"]
      embeddedFiles:
        - name: Run
          type: TEXT
          data: |
            set -xeuo pipefail
            
            mkdir -p '{{Param.OutputDir}}'
            
            # Parse the chunk range (e.g., "1-10") into start and end frames
            START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)"
            END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"
            
            blender --background '{{Param.BlenderSceneFile}}' \
                    --render-output '{{Param.OutputDir}}/output_####' \
                    --render-format PNG \
                    --use-extension 1 \
                    -s "$START_FRAME" \
                    -e "$END_FRAME" \
                    --render-anim
```

In questo esempio, Deadline Cloud divide i 100 frame in blocchi come, e così via. `1-10` `11-20` La `{{Task.Param.Frame}}` variabile si espande in un'espressione di intervallo come. `1-10` Poiché `rangeConstraint` è impostato su`CONTIGUOUS`, l'intervallo è sempre in `start-end` formato. Lo script analizza questo intervallo e passa i frame iniziale e finale a Blender usando le `-e` opzioni `-s` e with. `--render-anim`

La `chunks` proprietà supporta i seguenti campi:
+ `defaultTaskCount`— (Obbligatorio) Quante attività combinare in un unico blocco. Il valore massimo è 150.
+ `rangeConstraint`— (Obbligatorio) Se`CONTIGUOUS`, un blocco è sempre un intervallo contiguo come. `1-10` Se`NONCONTIGUOUS`, un blocco può essere un insieme arbitrario, ad esempio. `1,3,7-10`
+ `targetRuntimeSeconds`— (Facoltativo) Il tempo di esecuzione previsto in secondi per ogni blocco. Deadline Cloud può regolare dinamicamente la dimensione dei blocchi per avvicinarsi a questo obiettivo una volta completati alcuni blocchi.

[Per altri esempi di suddivisione in blocchi delle attività, inclusi esempi di base e di Blender con blocchi contigui e non contigui, consulta gli esempi di suddivisione in blocchi delle attività nell'archivio degli esempi di Deadline Cloud su.](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking) GitHub

**Requisiti della flotta gestita dal cliente**  
La suddivisione delle attività richiede una versione di Worker Agent compatibile. Se utilizzi flotte gestite dai clienti, assicurati che i tuoi worker agent siano aggiornati prima di inviare lavori con chunking. Le flotte gestite dai servizi utilizzano sempre una versione di Worker Agent compatibile.

**Scaricamento dell'output per lavori suddivisi in blocchi**  
Quando scarichi l'output per una singola attività in un lavoro suddiviso in blocchi, Deadline Cloud scarica l'output per l'intero blocco. Ad esempio, se i frame 1-10 sono stati elaborati insieme, il download dell'output per il frame 3 include tutti i frame 1-10. Questa funzionalità richiede la `deadline-cloud` versione 0.53.3 o successiva.

# Valori dei parametri, elementi per i job bundle.
Elementi dei valori dei parametri

È possibile utilizzare il file dei parametri per impostare i valori di alcuni parametri del processo nel modello di lavoro o gli argomenti della richiesta di [CreateJob](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html)operazione nel job bundle in modo da non dover impostare valori quando si invia un lavoro. L'interfaccia utente per l'invio dei lavori consente di modificare questi valori.

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

In YAML, il formato del file è:

```
parameterValues:
- name: <string>
  value: <integer>, <float>, or <string>
- name: <string>
  value: <integer>, <float>, or <string>ab
... repeating as necessary
```

Ogni elemento dell'`parameterValues`elenco deve essere uno dei seguenti:
+ Un parametro di lavoro definito nel modello di lavoro.
+ Un parametro di lavoro definito in un ambiente di coda per la coda a cui si invia il lavoro..
+ Un parametro speciale passato all'`CreateJob`operazione durante la creazione di un lavoro.
  + `deadline:priority`— Il valore deve essere un numero intero. Viene passato all'`CreateJob`operazione come parametro [prioritario](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html#deadlinecloud-CreateJob-request-priority).
  + `deadline:targetTaskRunStatus`— Il valore deve essere una stringa. Viene passato all'`CreateJob`operazione come parametro [targetTaskRunStatus](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html#deadlinecloud-CreateJob-request-targetTaskRunStatus).
  + `deadline:maxFailedTasksCount`— Il valore deve essere un numero intero. Viene passato all'`CreateJob`operazione come parametro [maxFailedTasksCount](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html#deadlinecloud-CreateJob-request-maxFailedTasksCount).
  + `deadline:maxRetriesPerTask`— Il valore deve essere un numero intero. Viene passato all'`CreateJob`operazione come parametro [maxRetriesPerTask](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html#deadlinecloud-CreateJob-request-maxRetriesPerTask).
  + `deadline:maxWorkercount`— Il valore deve essere un numero intero. Viene passato all'`CreateJob`operazione come [maxWorkerCount](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html#deadlinecloud-CreateJob-request-maxRetriesPerTask)parametro.

Un modello di lavoro è sempre un modello anziché un processo specifico da eseguire. Un file di valori dei parametri consente a un job bundle di fungere da modello se alcuni parametri non hanno valori definiti in questo file o come invio di job specifico se tutti i parametri hanno valori.

Ad esempio, l'esempio [blender\$1render non ha un file di parametri e il relativo modello di lavoro definisce parametri senza valori predefiniti](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/blender_render). Questo modello deve essere usato come modello per creare lavori. Dopo aver creato un job utilizzando questo job bundle, Deadline Cloud scrive un nuovo job bundle nella directory della cronologia dei lavori. 

Ad esempio, quando invii un lavoro con il seguente comando:

```
deadline bundle gui-submit blender_render/
```

Il nuovo job bundle contiene un `parameter_values.yaml` file che contiene i parametri specificati:

```
% cat ~/.deadline/job_history/\(default\)/2024-06/2024-06-20-01-JobBundle-Demo/parameter_values.yaml
parameterValues:
- name: deadline:targetTaskRunStatus
  value: READY
- name: deadline:maxFailedTasksCount
  value: 10
- name: deadline:maxRetriesPerTask
  value: 5
- name: deadline:priority
  value: 75
- name: BlenderSceneFile
  value: /private/tmp/bundle_demo/bmw27_cpu.blend
- name: Frames
  value: 1-10
- name: OutputDir
  value: /private/tmp/bundle_demo/output
- name: OutputPattern
  value: output_####
- name: Format
  value: PNG
- name: CondaPackages
  value: blender
- name: RezPackages
  value: blender
```

È possibile creare lo stesso lavoro con il seguente comando:

```
deadline bundle submit ~/.deadline/job_history/\(default\)/2024-06/2024-06-20-01-JobBundle-Demo/
```

**Nota**  
Il job bundle inviato viene salvato nella directory della cronologia dei lavori. Puoi trovare la posizione di quella directory con il seguente comando:  

```
deadline config get settings.job_history_dir
```

# Elementi di riferimento delle risorse per i pacchetti di lavoro
Elementi di riferimento delle risorse

Puoi utilizzare [gli allegati di lavoro](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/storage-job-attachments.html) di Deadline Cloud per trasferire file avanti e indietro tra la tua workstation e Deadline Cloud. Il file di riferimento delle risorse elenca i file e le directory di input, nonché le directory di output per gli allegati. Se non elencate tutti i file e le directory in questo file, potete selezionarli quando inviate un lavoro con il comando. `deadline bundle gui-submit`

Questo file non ha effetto se non si utilizzano gli allegati del lavoro.

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

In YAML, il formato del file è:

```
assetReferences:
    inputs:
        # Filenames on the submitting workstation whose file contents are needed as 
        # inputs to run the job.
        filenames:
        - list of file paths
        # Directories on the submitting workstation whose contents are needed as inputs
        # to run the job.
        directories:
        - list of directory paths

    outputs:
        # Directories on the submitting workstation where the job writes output files
        # if running locally.
        directories:
        - list of directory paths

    # Paths referenced by the job, but not necessarily input or output.
    # Use this if your job uses the name of a path in some way, but does not explicitly need
    # the contents of that path.
    referencedPaths:
    - list of directory paths
```

Quando si seleziona il file di input o output da caricare su Amazon S3, Deadline Cloud confronta il percorso del file con i percorsi elencati nei profili di archiviazione. Ogni posizione del file system `SHARED` di tipo in un profilo di archiviazione astrae una condivisione di file di rete montata sulle workstation e sugli host di lavoro. Deadline Cloud carica solo i file che non si trovano su una di queste condivisioni di file.

Per ulteriori informazioni sulla creazione e l'utilizzo dei profili di archiviazione, consulta [Archiviazione condivisa in Deadline Cloud nella](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/storage-shared.html) Guida per l'utente di *AWS Deadline* Cloud.

**Example - Il file di riferimento delle risorse creato dalla GUI di Deadline Cloud**  
Utilizzate il comando seguente per inviare un lavoro utilizzando l'esempio [blender\$1render](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/blender_render).  

```
deadline bundle gui-submit blender_render/
```
Aggiungi alcuni file aggiuntivi al lavoro nella scheda **Job attachments**:  

![\[Il riquadro degli allegati del lavoro della GUI di invio dei lavori di Deadline Cloud. Aggiungi il file di input/. private/tmp/bundle_demo/a_texture.png and the input directory /private/tmp/bundle_demo/assets\]](http://docs.aws.amazon.com/it_it/deadline-cloud/latest/developerguide/images/blender_submit_add_job_attachments.png)

Dopo aver inviato il lavoro, puoi guardare il `asset_references.yaml` file nel job bundle nella directory della cronologia dei lavori per vedere le risorse nel file YAML:  

```
% cat ~/.deadline/job_history/\(default\)/2024-06/2024-06-20-01-JobBundle-Demo/asset_references.yaml 
assetReferences:
  inputs:
    filenames:
    - /private/tmp/bundle_demo/a_texture.png
    directories:
    - /private/tmp/bundle_demo/assets
  outputs:
    directories: []
  referencedPaths: []
```