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à.
In che modo Deadline Cloud carica i file su Amazon S3
Questo esempio mostra come Deadline Cloud carica i file dalla tua workstation o dal worker host su Amazon S3 in modo che possano essere condivisi. Utilizza un pacchetto di lavoro di esempio dal repository deadline-cloud-samples sul sito Web e l'interfaccia a riga di comando di Deadline Cloud
Inizia clonando il repository deadline-cloud-samples nel tuo ambiente, quindi copia il job bundle nella tua home directory: AWS CloudShell job_attachments_devguide
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cp -r deadline-cloud-samples/job_bundles/job_attachments_devguide ~/
Installa la CLI di Deadline Cloud per inviare pacchetti di lavoro:
pip install deadline --upgrade
Il job_attachments_devguide job bundle prevede un solo passaggio con un'attività che esegue uno script di shell bash la cui posizione del file system viene passata come parametro di lavoro. La definizione del parametro job è:
...
- name: ScriptFile
type: PATH
default: script.sh
dataFlow: IN
objectType: FILE
... Il IN valore della dataFlow proprietà indica a Job Attachments che il valore del ScriptFile parametro è un input per il job. Il valore della default proprietà è una posizione relativa alla directory del job bundle, ma può anche essere un percorso assoluto. Questa definizione di parametro dichiara il script.sh file nella directory del job bundle come file di input necessario per l'esecuzione del job.
Quindi, assicurati che la CLI di Deadline Cloud non abbia un profilo di archiviazione configurato, quindi invia il lavoro in coda: 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/
L'output della CLI di Deadline Cloud dopo l'esecuzione di questo comando è il seguente:
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
Quando invii il lavoro, Deadline Cloud esegue prima l'hashing del script.sh file e poi lo carica su Amazon S3.
Deadline Cloud considera il bucket S3 come uno storage indirizzabile ai contenuti. I file vengono caricati su oggetti S3. Il nome dell'oggetto è derivato da un hash del contenuto del file. Se due file hanno contenuti identici, hanno lo stesso valore hash indipendentemente da dove si trovano i file o da come sono denominati. Questo spazio di archiviazione indirizzabile ai contenuti consente a Deadline Cloud di evitare di caricare un file se è già disponibile.
Puoi utilizzare l'interfaccia a riga di comando di AWS per visualizzare gli oggetti caricati su 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
Due oggetti sono stati caricati su S3:
-
DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128— Il contenuto di.script.shIl valore87cb19095dd5d78fcaf56384ef0e6241nella chiave oggetto è l'hash del contenuto del file e l'estensionexxh128indica che il valore hash è stato calcolato come hash a 128 bit utilizzando l'algoritmo xxHash sul sitoWeb xxHash. -
DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input— L'oggetto manifesto per l'invio del lavoro. I valori<farm-id><queue-id>, e<guid>sono l'identificatore della fattoria, l'identificatore della coda e un valore esidecimale casuale. Il valorea1d221c7fd97b08175b3872a37428e8cin questo esempio è un valore hash calcolato dalla stringa, la directory in cui si trova./home/cloudshell-user/job_attachments_devguidescript.sh
L'oggetto manifest contiene le informazioni per i file di input su uno specifico percorso principale caricato su S3 come parte dell'invio del lavoro. Scarica questo file manifest ()aws
s3 cp s3://$Q1_S3_BUCKET/<objectname>. Il suo contenuto è simile a:
{ "hashAlg": "xxh128", "manifestVersion": "2023-03-03", "paths": [ { "hash": "87cb19095dd5d78fcaf56384ef0e6241", "mtime": 1721147454416085, "path": "script.sh", "size": 39 } ], "totalSize": 39 }
Ciò indica che il file script.sh è stato caricato e l'hash del contenuto di quel file è87cb19095dd5d78fcaf56384ef0e6241. Questo valore hash corrisponde al valore nel nome dell'oggetto. DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128 Viene utilizzato da Deadline Cloud per sapere quale oggetto scaricare per il contenuto di questo file.
Per lo schema completo del file manifest, consulta il repository deadline-cloud-job-attachments sul sito web.
Quando si utilizza l'CreateJob operazione, è possibile impostare la posizione degli oggetti del manifesto. È possibile utilizzare l'GetJoboperazione per visualizzare la posizione:
{ "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" } ] }, ... }