Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Wie Deadline Cloud Dateien auf Amazon S3 hochlädt
Dieses Beispiel zeigt, wie Deadline Cloud Dateien von Ihrer Workstation oder Ihrem Worker-Host auf Amazon S3 hochlädt, damit sie gemeinsam genutzt werden können. Es verwendet ein Beispiel-Job-Paket aus dem Deadline-Cloud-Samples-Repository
Klonen Sie zunächst das Deadline-Cloud-Samples-Repository in Ihre AWS CloudShell Umgebung und kopieren Sie dann das Job-Paket in Ihr Home-Verzeichnis: job_attachments_devguide
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cp -r deadline-cloud-samples/job_bundles/job_attachments_devguide ~/
Installieren Sie die Deadline Cloud-CLI, um Job-Pakete einzureichen:
pip install deadline --upgrade
Das job_attachments_devguide Job-Paket besteht aus einem einzigen Schritt mit einer Aufgabe, die ein Bash-Shell-Skript ausführt, dessen Speicherort im Dateisystem als Jobparameter übergeben wird. Die Definition des Jobparameters lautet:
...
- name: ScriptFile
type: PATH
default: script.sh
dataFlow: IN
objectType: FILE
... Der IN Wert der dataFlow Eigenschaft teilt Auftragsanhängen mit, dass der Wert des ScriptFile Parameters eine Eingabe für den Job ist. Der Wert der default Eigenschaft ist ein relativer Speicherort zum Verzeichnis des Auftragspakets, es kann sich aber auch um einen absoluten Pfad handeln. Diese Parameterdefinition deklariert die script.sh Datei im Verzeichnis des Job-Pakets als Eingabedatei, die für die Ausführung des Jobs erforderlich ist.
Stellen Sie als Nächstes sicher, dass für die Deadline Cloud-CLI kein Speicherprofil konfiguriert ist, und senden Sie dann den Job an die WarteschlangeQ1:
# 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/
Die Ausgabe der Deadline Cloud CLI nach der Ausführung dieses Befehls sieht wie folgt aus:
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
Wenn Sie den Job einreichen, hasht Deadline Cloud zuerst die script.sh Datei und lädt sie dann auf Amazon S3 hoch.
Deadline Cloud behandelt den S3-Bucket als inhaltsadressierbaren Speicher. Dateien werden in S3-Objekte hochgeladen. Der Objektname wird aus einem Hash des Dateiinhalts abgeleitet. Wenn zwei Dateien identischen Inhalt haben, haben sie den gleichen Hashwert, unabhängig davon, wo sich die Dateien befinden oder wie sie benannt sind. Dieser inhaltsadressierbare Speicher ermöglicht es Deadline Cloud, das Hochladen einer Datei zu vermeiden, wenn diese bereits verfügbar ist.
Sie können die AWS-CLI verwenden, um die Objekte zu sehen, die auf Amazon S3 hochgeladen wurden:
# 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
Zwei Objekte wurden auf S3 hochgeladen:
-
DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128— Der Inhalt vonscript.sh. Der Wert87cb19095dd5d78fcaf56384ef0e6241im Objektschlüssel ist der Hash des Dateiinhalts, und die Erweiterungxxh128gibt an, dass der Hashwert mithilfe des xxHash-Algorithmus auf derxxHash-Website als 128-Bit-Hash berechnet wurde. -
DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input— Das Manifest-Objekt für die Auftragsübermittlung. Die Werte<farm-id><queue-id>, und<guid>sind Ihre Farm-ID, die Warteschlangen-ID und ein zufälliger Hexadezimalwert. Der Werta1d221c7fd97b08175b3872a37428e8cin diesem Beispiel ist ein Hashwert, der aus der Zeichenfolge/home/cloudshell-user/job_attachments_devguide, dem Verzeichnis, in dem sich befindetscript.sh, berechnet wird.
Das Manifestobjekt enthält die Informationen für die Eingabedateien in einem bestimmten Stammpfad, die im Rahmen der Auftragsübermittlung auf S3 hochgeladen wurden. Laden Sie diese Manifestdatei herunter (aws
s3 cp s3://$Q1_S3_BUCKET/<objectname>). Ihr Inhalt ist ähnlich wie:
{ "hashAlg": "xxh128", "manifestVersion": "2023-03-03", "paths": [ { "hash": "87cb19095dd5d78fcaf56384ef0e6241", "mtime": 1721147454416085, "path": "script.sh", "size": 39 } ], "totalSize": 39 }
Dies zeigt an, dass die Datei hochgeladen script.sh wurde, und der Hash des Inhalts dieser Datei lautet87cb19095dd5d78fcaf56384ef0e6241. Dieser Hashwert entspricht dem Wert im ObjektnamenDeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128. Er wird von Deadline Cloud verwendet, um zu wissen, welches Objekt für den Inhalt dieser Datei heruntergeladen werden muss.
Das vollständige Schema für die Manifestdatei finden Sie im Deadline-Cloud-Job-Attachments-Repository auf der Website.
Wenn Sie die CreateJob Operation verwenden, können Sie den Speicherort der Manifestobjekte festlegen. Sie können die GetJob Operation verwenden, um den Standort anzuzeigen:
{ "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" } ] }, ... }