

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.

# So lädt Deadline Cloud Dateien auf Amazon S3 hoch
<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-Bundle von GitHub und die Deadline Cloud-CLI, um Jobs einzureichen.

 Klonen Sie zunächst das [Deadline GitHub Cloud-Beispiel-Repository](https://github.com/aws-deadline/deadline-cloud-samples) in Ihre [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)Umgebung und kopieren Sie dann das `job_attachments_devguide` Job-Bundle in Ihr Home-Verzeichnis: 

```
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](https://pypi.org/project/deadline/), um Job-Bundles einzureichen: 

```
pip install deadline --upgrade
```

 Das `job_attachments_devguide` Job-Bundle besteht aus einem einzigen Schritt mit einer Aufgabe, die ein Bash-Shell-Skript ausführt, dessen Dateisystemspeicherort als Jobparameter übergeben wird. Die Definition des Job-Parameters lautet: 

```
...
- name: ScriptFile
  type: PATH
  default: script.sh
  dataFlow: IN
  objectType: FILE
...
```

 Der `IN` Wert der `dataFlow` Eigenschaft teilt Job-Anhä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 Job-Bundles, es kann sich aber auch um einen absoluten Pfad handeln. Diese Parameterdefinition deklariert die `script.sh` Datei im Verzeichnis des Job-Bundles 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 den Job dann in 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, hascht Deadline Cloud die `script.sh` Datei zuerst 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 unabhängig davon, wo sich die Dateien befinden oder wie sie benannt sind, denselben Hashwert. Dieser inhaltsadressierbare Speicher ermöglicht es Deadline Cloud, das Hochladen einer Datei zu vermeiden, wenn sie bereits verfügbar ist.

 Sie können die [AWS-CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 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 von`script.sh`. Der Wert `87cb19095dd5d78fcaf56384ef0e6241` im Objektschlüssel ist der Hash des Dateiinhalts, und die Erweiterung `xxh128` gibt an, dass der Hashwert als [128-Bit-xxhash](https://xxhash.com/) berechnet wurde. 
+  `DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input`— Das Manifest-Objekt für die Auftragsübergabe. Die Werte `<farm-id>``<queue-id>`, und `<guid>` sind Ihre Farm-ID, Ihre Warteschlangen-ID und ein zufälliger Hexadezimalwert. Der Wert `a1d221c7fd97b08175b3872a37428e8c` in diesem Beispiel ist ein Hashwert, der anhand der Zeichenfolge`/home/cloudshell-user/job_attachments_devguide`, dem Verzeichnis, in dem er sich `script.sh` befindet, berechnet wird. 

 Das Manifest-Objekt 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 bedeutet, 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`. Es 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 diese Datei ist [verfügbar in GitHub](https://github.com/aws-deadline/deadline-cloud/blob/mainline/src/deadline/job_attachments/asset_manifests/v2023_03_03/validate.py). 

Wenn Sie den [CreateJob Vorgang](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html) verwenden, können Sie den Speicherort der Manifestobjekte festlegen. Sie können die [GetJobOperation](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html) verwenden, um den Standort zu sehen: 

```
{
    "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"
            }
        ]
    },
    ...
}
```