Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kait pengajuan
Kait pengiriman memungkinkan Anda menjalankan skrip kustom selama alur kerja pengiriman pekerjaan Deadline Cloud. Hooks berjalan secara lokal di workstation yang mengirimkan pekerjaan, sebelum pekerjaan mencapai layanan Deadline Cloud. Kait tidak berjalan pada pekerja atau di AWS Cloud. Karena kait dijalankan pada mesin Anda, mereka memiliki akses ke file lokal, variabel lingkungan, dan sumber daya jaringan yang tersedia untuk pengguna yang mengirimkan.
Anda dapat menggunakan hook untuk memvalidasi konfigurasi pekerjaan, menemukan aset tambahan, memodifikasi parameter pengiriman, atau mengintegrasikan dengan sistem eksternal seperti perangkat lunak pelacak produksi. Untuk poin integrasi lain yang berjalan pada pekerja atau di cloud, lihatKait, acara, dan titik integrasi untuk pekerjaan.
Ada dua cara untuk mengkonfigurasi kait:
-
Bundle hooks — Tempatkan file
hooks.yaml(atauhooks.json) di direktori bundel pekerjaan Anda di sampingnyatemplate.yaml. Kait bundel berfungsi dengan baik untuk alur kerja CLI di mana bundel sudah ada sebelum pengiriman. -
Environment hooks - Arahkan variabel
DEADLINE_HOOKS_DIRlingkungan ke direktori yang berisihooks.yaml. Pengait lingkungan berguna untuk studio yang ingin menerapkan kait di semua kiriman tanpa memodifikasi bundel pekerjaan.
Kedua sumber dapat aktif pada saat yang bersamaan. Saat keduanya ada, kait lingkungan berjalan lebih dulu, lalu kait bundel.
catatan
In-application (DCC) pengirim seperti Maya, Nuke, atau Blender menjalankan hook lingkungan hanya untuk fase pra-pengiriman dan pasca-pengiriman. Fase pra-GUI tidak berlaku untuk pengirim DCC. Untuk informasi selengkapnya, lihat Pre-GUI kait.
Jenis kait
Deadline Cloud mendukung tiga jenis hook yang sesuai dengan poin berbeda dalam alur kerja pengiriman.
Pre-GUI kait
Pre-GUI hook berjalan sebelum dialog pengiriman terbuka. Anda dapat menggunakan kait pra-GUI untuk tugas-tugas berikut:
penting
Pre-GUI kait hanya berjalan dengan pengirim GUI mandiri (). deadline bundle gui-submit Mereka tidak berjalan di pengirim dalam aplikasi (DCC) seperti Maya, Nuke, atau Blender, karena aplikasi tersebut membangun dialog pengiriman mereka secara langsung dan tidak memanggil fase pra-GUI. Pre-GUI kait juga tidak berlaku untuk pengiriman CLI deadline bundle submit (), yang tidak memiliki fase GUI. Pre-submission dan kait pasca-pengiriman bekerja di semua metode pengiriman.
-
Pre-populate nama pekerjaan, deskripsi, dan prioritas
-
Tetapkan default parameter berdasarkan konteks adegan atau pipeline saat ini
-
Kueri sistem manajemen proyek untuk metadata tugas
Pre-GUI kait memblokir dialog agar tidak terbuka jika gagal (kode keluar bukan nol atau batas waktu).
Output JSON ke stdout untuk memodifikasi status dialog awal. Contoh berikut menunjukkan format output:
import json output = { "name": "My Render - v042", "description": "Submitted via pipeline", "parameters": { "SceneFile": "/resolved/path/to/scene.ma", "OutputPath": "/shots/sh010/renders/", "deadline:priority": 75, "deadline:maxFailedTasksCount": 5, "deadline:maxRetriesPerTask": 3, "deadline:maxWorkerCount": 10, "deadline:targetTaskRunStatus": "READY" } } print(json.dumps(output))
Tabel berikut menjelaskan bidang output untuk kait pra-GUI.
| Bidang | Tipe | Deskripsi |
|---|---|---|
|
String |
Pre-fills bidang nama pekerjaan. |
|
String |
Pre-fills bidang deskripsi pekerjaan. |
|
Objek |
Pre-fills nilai parameter dengan nama. Parameter template Job menggunakan nama mereka secara langsung. Properti pekerjaan bersama menggunakan |
Tabel berikut menjelaskan properti pekerjaan bersama yang dapat Anda atur dengan deadline: awalan di parameters objek.
| Key | Tipe | Deskripsi |
|---|---|---|
|
Bilangan Bulat |
Prioritas (0—100). |
|
Bilangan Bulat |
Tugas gagal maksimum sebelum pekerjaan gagal. |
|
Bilangan Bulat |
Percobaan ulang maksimum per tugas yang gagal. |
|
Bilangan Bulat |
Pekerja bersamaan maksimum. |
|
String |
Status tugas awal: |
catatan
CLI-supplied --parameternilai lebih diutamakan daripada yang disediakan kait. parameters
Pre-submission kait
Pre-submission kait dijalankan sebelum lampiran pekerjaan di-hash dan diunggah. Anda dapat menggunakan kait pra-pengiriman untuk tugas-tugas berikut:
-
Validasi konfigurasi pekerjaan
-
Temukan dan tambahkan file input tambahan
-
Memodifikasi parameter pekerjaan seperti prioritas
-
Menegakkan kebijakan studio
Pre-submission hook memblokir pengiriman jika gagal (kode keluar bukan nol atau batas waktu).
Output JSON ke stdout untuk memodifikasi kiriman. Output hook menggantikan referensi aset pada level kunci bersarang. Jika output hook AndainputFilenames, output hook menggantikan seluruh inputFilenames daftar. Deadline Cloud mempertahankan kunci yang tidak Anda sertakan dalam output Anda.
Contoh berikut menambahkan file tekstur yang ditemukan ke kiriman:
import json import os import sys metadata = json.load(sys.stdin) bundle_dir = metadata["jobBundleDir"] textures = [] for root, _, files in os.walk(bundle_dir): for f in files: if f.endswith(('.exr', '.png', '.jpg', '.tx')): textures.append(os.path.join(root, f)) if textures: print(json.dumps({ "attachments": { "assetReferences": { "inputFilenames": textures } } }))
Pre-submission hook juga dapat memodifikasi nilai parameter template pekerjaan dengan memancarkan parameters peta di stdout:
print(json.dumps({"parameters": {"SceneFile": "/resolved/scene.ma", "Quality": "high"}}))
Kunci parameter adalah nama parameter template pekerjaan. Nilai dari hook diterapkan di atas nilai parameter bundel, tetapi CLI-supplied --parameter nilai masih diutamakan daripada yang disediakan kait.
penting
PATHparameter yang dipancarkan pada stdout harus absolut. Hook tidak berjalan dari direktori kerja shell yang mengirimkan, jadi PATH nilai relatif pada stdout ambigu dan ditolak dengan kesalahan. Memancarkan jalur absolut (misalnya, bergabung denganDEADLINE_JOB_BUNDLE_DIR), atau tulis nilai keparameter_values.yaml/parameter_values.jsonpada disk sebagai gantinya, di mana kerabat PATH diselesaikan terhadap direktori bundel pekerjaan.
Post-submission kait
Post-submission hook berjalan setelah panggilan CreateJob API berhasil kembali. Pekerjaan telah diterima oleh Deadline Cloud pada saat ini. Anda dapat menggunakan kait pasca-pengiriman untuk tugas-tugas berikut:
-
Kirim pemberitahuan (Slack, email)
-
Perbarui sistem pelacakan
-
Rincian pengiriman log
Post-submission kegagalan hook dicatat sebagai peringatan tetapi tidak mempengaruhi pekerjaan yang dikirimkan.
Konfigurasikan kait pengiriman
Tentukan kait dalam hooks.json file hooks.yaml atau. Tempatkan file di direktori bundel pekerjaan Anda di sampingtemplate.yaml, atau di direktori yang ditentukan olehDEADLINE_HOOKS_DIR. Jika kedua format ada di direktori yang sama, pengirim melaporkan kesalahan.
versionBidang diperlukan dan harus"1.0".
Contoh berikut menunjukkan hooks.yaml konfigurasi:
version: "1.0" preGUI: - command: python3 args: [scripts/prefill_from_shotgrid.py] timeout: 10 preSubmission: - command: python3 args: [scripts/validate_assets.py] timeout: 60 env: VALIDATION_LEVEL: strict - command: python3 args: [scripts/discover_textures.py] postSubmission: - command: python3 args: [scripts/notify_slack.py] timeout: 15 env: SLACK_WEBHOOK: https://hooks.slack.com/...
Bidang definisi kait
Setiap entri hook menerima bidang berikut.
| Bidang | Diperlukan | Default | Deskripsi |
|---|---|---|---|
|
Ya |
– |
Executable atau interpreter (misalnya, |
|
Tidak |
|
Command-line argumen. |
|
Tidak |
|
Waktu eksekusi maksimum dalam hitungan detik. |
|
Tidak |
|
Variabel lingkungan tambahan. Hooks mewarisi lingkungan penuh pengirim. |
Resolusi jalur
Skrip kait diselesaikan sesuai dengan aturan berikut:
-
Jalur absolut — Digunakan apa adanya.
-
Jalur relatif — Terselesaikan relatif terhadap direktori bundel pekerjaan.
-
Nama perintah — Dicari di PATH sistem.
Masukan kait
Hooks menerima metadata pekerjaan melalui JSON di stdin dan melalui variabel lingkungan kenyamanan.
Variabel-variabel lingkungan
Variabel lingkungan berikut tersedia untuk semua kait.
| Variabel | Deskripsi |
|---|---|
|
Nama Job. |
|
Prioritas pekerjaan. |
|
ID Pertanian. |
|
ID Antrian. |
|
Jalur ke direktori bundel pekerjaan. |
|
ID profil penyimpanan (jika diatur). |
|
Job ID (hanya kait pasca-pengiriman). |
JSON di stdin
Metadata lengkap disediakan sebagai JSON di stdin. Contoh berikut menunjukkan struktur:
{ "jobName": "My Render Job", "priority": 50, "farmId": "farm-abc123", "queueId": "queue-def456", "jobBundleDir": "/path/to/bundle", "parameters": {"SceneFile": "/path/to/scene.ma"}, "submitterName": "Maya", "assetReferences": { "inputFilenames": ["/path/to/texture.exr"], "inputDirectories": [], "outputDirectories": ["/path/to/output"], "referencedPaths": [] }, "submissionPayload": {} }
Keamanan
Kait dinonaktifkan secara default. Setiap sumber kait memiliki pengaturannya sendiri yang harus Anda aktifkan.
Mengaktifkan kait bundel
Untuk mengizinkan kait yang ditentukan di hooks.yaml dalam bundel pekerjaan, aktifkan pengaturan kait bundel.
Untuk mengaktifkan kait bundel
-
Jalankan perintah berikut:
deadline config set settings.allow_bundle_hooks true
Mengaktifkan kait lingkungan
Untuk mengizinkan kait dari direktori yang ditentukan olehDEADLINE_HOOKS_DIR, aktifkan pengaturan kait lingkungan dan atur jalur direktori.
Untuk mengaktifkan kait lingkungan
-
Aktifkan pengaturan:
deadline config set settings.allow_environment_hooks true -
Mengatur variabel lingkungan, biasanya dalam skrip peluncur aplikasi:
export DEADLINE_HOOKS_DIR=/studio/pipeline/hooks/blender
Prompt konfirmasi
Saat Anda mengaktifkan kait, pengirim meminta Anda untuk mengonfirmasi sebelum kait dijalankan. Pre-GUI kait menunjukkan prompt sebelum dialog terbuka. Pre-submission dan kait pasca-pengiriman menunjukkan prompt saat Anda memilih Kirim.
Prompt menunjukkan perintah mana yang akan dijalankan, memungkinkan Anda untuk meninjau sebelum melanjutkan:
This job bundle contains submission hooks that will execute on your machine: Pre-GUI hooks: [1] python3 prefill_from_shotgrid.py Pre-submission hooks: [1] python3 validate_assets.py Post-submission hooks: [1] python3 notify.py Bundle: /path/to/bundle Do you want to run these hooks? [Y/n]
Untuk melewati konfirmasi konfirmasi CI/automation alur kerja, jalankan perintah berikut:
deadline config set settings.auto_accept true
Ringkasan pengaturan konfigurasi
| Pengaturan | Default | Deskripsi |
|---|---|---|
|
|
Menentukan apakah untuk memungkinkan hook dari file bundel |
|
|
Menentukan apakah untuk memungkinkan kait dari direktori. |
|
|
Menentukan apakah akan melewati konfirmasi konfirmasi. Gunakan dengan hati-hati di CI/automation lingkungan. |
Penyebaran studio
Direktur teknis pipeline dapat mengonfigurasi kait agar berjalan secara otomatis untuk semua artis dengan menerapkan kait lingkungan di seluruh workstation. Gunakan prosedur ini ketika studio Anda memiliki lokasi jaringan bersama untuk skrip hook dan Anda memiliki akses administratif untuk mengonfigurasi workstation artis.
Untuk menyebarkan kait lingkungan untuk studio
-
Konfigurasikan workstation untuk memungkinkan pengait lingkungan:
deadline config set settings.allow_environment_hooks true -
Atur
DEADLINE_HOOKS_DIRskrip peluncur setiap aplikasi:# blender_launcher.sh export DEADLINE_HOOKS_DIR=/studio/pipeline/hooks/blender exec blender "$@" -
Buat kait di lokasi yang ditentukan:
/studio/pipeline/hooks/blender/ ├── hooks.yaml └── validate_scene.py
Penanganan kesalahan
Ketika pengait pra-pengiriman atau pra-GUI gagal, output kesalahan mencakup informasi berikut:
-
Kait mana yang gagal
-
Kode keluar
-
keluaran stdout dan stderr
-
Durasi batas waktu (jika waktu pengait habis)
Pengirim memblokir pengiriman sampai Anda menyelesaikan masalah. Post-submission kegagalan hook dicatat sebagai peringatan tetapi tidak mempengaruhi pekerjaan yang dikirimkan.
Praktik terbaik
-
Jaga kait dengan cepat. Tetapkan batas waktu yang sesuai dan hindari operasi yang berjalan lama di kait.
-
Masuk ke stderr. Cadangan stdout untuk output JSON di kait pra-GUI dan pra-pengiriman.
-
Tangani kesalahan dengan anggun. Berikan pesan kesalahan yang jelas di stderr sehingga pengguna dapat mengidentifikasi apa yang salah.
-
Uji dengan CLI terlebih dahulu. Pengajuan CLI lebih mudah untuk di-debug daripada pengiriman GUI.
-
Gunakan jalur absolut dalam output. Saat menambahkan file ke referensi aset, selalu gunakan jalur absolut.
-
Gunakan kait lingkungan untuk kebijakan di seluruh studio. Kait lingkungan lebih aman daripada kait bundel karena dikendalikan oleh studio daripada pembuat bundel.
-
Tinjau kait bundel sebelum mengaktifkan. Periksa
hooks.yamlbundel dari sumber yang tidak tepercaya sebelum mengizinkan kait bundel berjalan.
Metode pengiriman
Hooks bekerja dengan metode pengiriman berikut:
-
deadline bundle submit(CLI) — Pre-submission dan kait pasca-pengiriman berjalan. CLI tidak memiliki fase GUI, jadi kait pra-GUI tidak berlaku. -
deadline bundle gui-submit(GUI mandiri) - Semua fase berjalan, termasuk kait pra-GUI. -
In-application (DCC) pengirim — Pre-submission dan kait pasca-pengiriman dijalankan. Pengirim DCC tidak memanggil fase pra-GUI.
GUI mandiri menyalin hooks.yaml ke bundel riwayat pekerjaan dan menyelesaikan jalur skrip kembali ke direktori bundel asli Anda.
Sumber daya tambahan
Untuk informasi selengkapnya tentang titik integrasi dan topik terkait, lihat berikut ini: