Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara Deadline Cloud mengunggah file ke Amazon S3
Contoh ini menunjukkan bagaimana Deadline Cloud mengunggah file dari workstation atau host pekerja Anda ke Amazon S3 sehingga file tersebut dapat dibagikan. Ini menggunakan bundel pekerjaan sampel dari repositori deadline-cloud-sample
Mulailah dengan mengkloning repositori deadline-cloud-sample ke AWS CloudShell lingkungan Anda, lalu salin bundel job_attachments_devguide pekerjaan ke direktori home Anda:
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cp -r deadline-cloud-samples/job_bundles/job_attachments_devguide ~/
Instal Deadline Cloud CLI untuk mengirimkan bundel pekerjaan:
pip install deadline --upgrade
Bundel job_attachments_devguide pekerjaan memiliki satu langkah dengan tugas yang menjalankan skrip shell bash yang lokasi sistem file diteruskan sebagai parameter pekerjaan. Definisi parameter pekerjaan adalah:
...
- name: ScriptFile
type: PATH
default: script.sh
dataFlow: IN
objectType: FILE
... Nilai dataFlow properti IN memberi tahu lampiran pekerjaan bahwa nilai ScriptFile parameter adalah input ke pekerjaan. Nilai default properti adalah lokasi relatif ke direktori bundel pekerjaan, tetapi juga bisa menjadi jalur absolut. Definisi parameter ini mendeklarasikan script.sh file dalam direktori bundel pekerjaan sebagai file input yang diperlukan untuk menjalankan pekerjaan.
Selanjutnya, pastikan bahwa Deadline Cloud CLI tidak memiliki profil penyimpanan yang dikonfigurasi lalu kirimkan pekerjaan ke antrean: Q1
# Change the value of FARM_ID to your farm's identifier FARM_ID=farm-00112233445566778899aabbccddeeff# Change the value of QUEUE1_ID to queue Q1's identifier QUEUE1_ID=queue-00112233445566778899aabbccddeeffdeadline config set settings.storage_profile_id '' deadline bundle submit --farm-id $FARM_ID --queue-id $QUEUE1_ID job_attachments_devguide/
Output dari Deadline Cloud CLI setelah perintah ini dijalankan terlihat seperti:
Submitting to Queue: Q1 ... Hashing Attachments [####################################] 100% Hashing Summary: Processed 1 file totaling 39.0 B. Skipped re-processing 0 files totaling 0.0 B. Total processing time of 0.0327 seconds at 1.19 KB/s. Uploading Attachments [####################################] 100% Upload Summary: Processed 1 file totaling 39.0 B. Skipped re-processing 0 files totaling 0.0 B. Total processing time of 0.25639 seconds at 152.0 B/s. Waiting for Job to be created... Submitted job bundle: job_attachments_devguide/ Job creation completed successfully job-74148c13342e4514b63c7a7518657005
Saat Anda mengirimkan pekerjaan, Deadline Cloud pertama-tama melakukan hash script.sh file dan kemudian mengunggahnya ke Amazon S3.
Deadline Cloud memperlakukan bucket S3 sebagai penyimpanan yang dapat dialamatkan konten. File diunggah ke objek S3. Nama objek berasal dari hash konten file. Jika dua file memiliki konten yang identik, mereka memiliki nilai hash yang sama terlepas dari di mana file berada atau apa namanya. Penyimpanan yang dapat dialamatkan konten ini memungkinkan Deadline Cloud untuk menghindari mengunggah file jika sudah tersedia.
Anda dapat menggunakan AWS CLI untuk melihat objek yang diunggah ke Amazon S3:
# The name of queue `Q1`'s job attachments S3 bucket Q1_S3_BUCKET=$( aws deadline get-queue --farm-id $FARM_ID --queue-id $QUEUE1_ID \ --query 'jobAttachmentSettings.s3BucketName' | tr -d '"' ) aws s3 ls s3://$Q1_S3_BUCKET --recursive
Dua objek diunggah ke S3:
-
DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128— Isi dariscript.sh. Nilai87cb19095dd5d78fcaf56384ef0e6241dalam kunci objek adalah hash dari konten file, dan ekstensixxh128menunjukkan bahwa nilai hash dihitung sebagai hash 128 bit menggunakan algoritma xxHashdi situs web xxHash. -
DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input— Objek manifes untuk pengiriman pekerjaan. Nilai<farm-id>,<queue-id>, dan<guid>merupakan pengidentifikasi peternakan Anda, pengidentifikasi antrian, dan nilai heksidecimal acak. Nilaia1d221c7fd97b08175b3872a37428e8cdalam contoh ini adalah nilai hash yang dihitung dari string/home/cloudshell-user/job_attachments_devguide, direktori tempatscript.shberada.
Objek manifes berisi informasi untuk file input pada jalur root tertentu yang diunggah ke S3 sebagai bagian dari pengiriman pekerjaan. Unduh file manifes ini (aws
s3 cp s3://$Q1_S3_BUCKET/<objectname>). Isinya mirip dengan:
{ "hashAlg": "xxh128", "manifestVersion": "2023-03-03", "paths": [ { "hash": "87cb19095dd5d78fcaf56384ef0e6241", "mtime": 1721147454416085, "path": "script.sh", "size": 39 } ], "totalSize": 39 }
Ini menunjukkan bahwa file telah script.sh diunggah, dan hash dari konten file itu adalah87cb19095dd5d78fcaf56384ef0e6241. Nilai hash ini cocok dengan nilai dalam nama objekDeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128. Ini digunakan oleh Deadline Cloud untuk mengetahui objek mana yang akan diunduh untuk konten file ini.
Untuk skema lengkap untuk file manifes, lihat repositori deadline-cloud-job-attachment di situs web.
Ketika Anda menggunakan CreateJob operasi, Anda dapat mengatur lokasi objek manifes. Anda dapat menggunakan GetJob operasi untuk melihat lokasi:
{ "attachments": { "file system": "COPIED", "manifests": [ { "inputManifestHash": "5b0db3d311805ea8de7787b64cbbe8b3", "inputManifestPath": "<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input", "rootPath": "/home/cloudshell-user/job_attachments_devguide", "rootPathFormat": "posix" } ] }, ... }