

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
<a name="what-job-attachments-uploads-to-amazon-s3"></a>

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 ](https://github.com/aws-deadline/deadline-cloud-samples) auf der GitHub Website und der [ Deadline Cloud-CLI ](https://pypi.org/project/deadline/) auf der PyPI-Website, um Jobs einzureichen.

 Klonen Sie zunächst das Deadline-Cloud-Samples-Repository in Ihre [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) 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 Warteschlange`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-{{00112233445566778899aabbccddeeff}}

deadline 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 ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 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 von`script.sh`. Der Wert `87cb19095dd5d78fcaf56384ef0e6241` im Objektschlüssel ist der Hash des Dateiinhalts, und die Erweiterung `xxh128` gibt an, dass der Hashwert mithilfe des xxHash-Algorithmus [ auf der ](https://xxhash.com/) xxHash-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 Wert `a1d221c7fd97b08175b3872a37428e8c` in diesem Beispiel ist ein Hashwert, der aus der Zeichenfolge`/home/cloudshell-user/job_attachments_devguide`, dem Verzeichnis, in dem sich befindet`script.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 lautet`87cb19095dd5d78fcaf56384ef0e6241`. Dieser Hashwert entspricht dem Wert im Objektnamen`DeadlineCloud/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. ](https://github.com/aws-deadline/deadline-cloud-job-attachments/blob/mainline/src/deadline/job_attachments/asset_manifests/v2023_03_03/validate.py) GitHub 

Wenn Sie die [ CreateJob Operation verwenden, können ](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html) Sie den Speicherort der Manifestobjekte festlegen. Sie können die [ GetJob Operation verwenden](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html), 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"
            }
        ]
    },
    ...
}
```