

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Elemen template Job untuk bundel pekerjaan
<a name="build-job-bundle-template"></a>

Template pekerjaan mendefinisikan lingkungan runtime dan proses yang berjalan sebagai bagian dari pekerjaan Deadline Cloud. Anda dapat membuat parameter dalam template sehingga dapat digunakan untuk membuat pekerjaan yang hanya berbeda dalam nilai input, seperti fungsi dalam bahasa pemrograman.

Saat Anda mengirimkan pekerjaan ke Deadline Cloud, itu berjalan di lingkungan antrian apa pun yang diterapkan ke antrian. Lingkungan antrian dibangun menggunakan spesifikasi lingkungan eksternal Open Job Description (OpenJD). Untuk detailnya, lihat [template Lingkungan di repositori](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#12-environment-template) OpenJD GitHub .

Untuk pengenalan yang membuat pekerjaan dengan template pekerjaan OpenJD, lihat [Pengantar untuk membuat pekerjaan di repositori](https://github.com/OpenJobDescription/openjd-specifications/wiki/Introduction-to-Creating-a-Job) GitHub OpenJD. Informasi tambahan dapat ditemukan di [Bagaimana pekerjaan dijalankan](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run). Ada contoh template pekerjaan di dalam direktori GitHub repositori OpenJD. `samples`

Anda dapat menentukan template pekerjaan dalam format YAMAL (`template.yaml`) atau format JSON (`template.json`). Contoh di bagian ini ditampilkan dalam format YAMAL.

Misalnya, template pekerjaan untuk `blender_render` sampel mendefinisikan parameter input `BlenderSceneFile` sebagai jalur 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.
```

`userInterface`Properti mendefinisikan perilaku antarmuka pengguna yang dihasilkan secara otomatis untuk kedua baris perintah menggunakan `deadline bundle gui-submit` perintah dan dalam plugin pengiriman pekerjaan untuk aplikasi seperti Autodesk Maya.

Dalam contoh ini, widget UI untuk memasukkan nilai untuk `BlenderSceneFile` parameter adalah dialog pemilihan file yang hanya menampilkan file. `.blend`

![Widget antarmuka pengguna untuk memasukkan parameter file adegan untuk template pekerjaan OpenJD.](http://docs.aws.amazon.com/id_id/deadline-cloud/latest/developerguide/images/blender_submit_scene_file_widget.png)


Untuk lebih banyak contoh penggunaan `userInteface` elemen, lihat contoh [gui\_control\_showcase](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/gui_control_showcase) di repositori pada. [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) GitHub

`dataFlow`Properti `objectType` dan mengontrol perilaku lampiran pekerjaan saat Anda mengirimkan pekerjaan dari bundel pekerjaan. Dalam hal ini, `objectType: FILE` dan `dataFlow:IN` berarti bahwa nilai `BlenderSceneFile` adalah file input untuk lampiran pekerjaan.

Sebaliknya, definisi `OutputDir` parameter memiliki `objectType: DIRECTORY` dan`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.
```

Nilai `OutputDir` parameter digunakan oleh lampiran pekerjaan sebagai direktori tempat pekerjaan menulis file output.

Untuk informasi selengkapnya tentang `dataFlow` properti `objectType` dan properti, lihat [JobPathParameterDefinition](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#22-jobpathparameterdefinition)[spesifikasi Open Job Description](https://github.com/OpenJobDescription/openjd-specifications)

Contoh template `blender_render` pekerjaan lainnya mendefinisikan alur kerja pekerjaan sebagai langkah tunggal dengan setiap frame dalam animasi yang dirender sebagai tugas terpisah:

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

Misalnya, jika nilai `Frames` parameternya`1-10`, ia mendefinisikan 10 tugas. Masing-masing memiliki tugas memiliki nilai yang berbeda untuk `Frame` parameter. Untuk menjalankan tugas:

1. Semua referensi variabel dalam `data` properti file tertanam diperluas, misalnya`--render-frame 1`.

1. Isi `data` properti ditulis ke file di direktori kerja sesi pada disk.

1. `onRun`Perintah tugas menyelesaikan `bash {{location of embedded file}}` dan kemudian berjalan.

Untuk informasi selengkapnya tentang file yang disematkan, sesi, dan lokasi yang dipetakan jalur, lihat [Bagaimana pekerjaan dijalankan](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run) dalam spesifikasi Open [Job Description](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run).

Ada lebih banyak contoh template pekerjaan di repositori [deadline-cloud-samples/job\_bundles](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles), serta sampel [template yang disediakan](https://github.com/OpenJobDescription/openjd-specifications/tree/mainline/samples) dengan spesifikasi Open Job Descriptions.