

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 die hochzuladenden Dateien auswählt
<a name="how-job-attachments-decides-what-to-upload-to-amazon-s3"></a>

 Die Dateien und Verzeichnisse, die Job Attachments für den Upload auf Amazon S3 als Eingaben für Ihren Job in Betracht ziehen, sind: 
+  Die Werte aller Jobparameter `PATH` vom Typ -type, die in der Jobvorlage des Job-Bundles mit dem `dataFlow` Wert `IN` oder `INOUT` definiert sind.
+  Die Dateien und Verzeichnisse, die als Eingaben in der Asset-Referenzdatei des Job-Bundles aufgeführt sind. 

 Wenn Sie einen Job ohne Speicherprofil einreichen, werden alle Dateien hochgeladen, die für den Upload in Frage kommen. Wenn Sie einen Job mit einem Speicherprofil einreichen, werden Dateien nicht auf Amazon S3 hochgeladen, wenn sie sich in den Dateisystemspeicherorten des Speicherprofils `SHARED` vom Typ -type befinden, die auch erforderliche Dateisystemspeicherorte für die Warteschlange sind. Es wird davon ausgegangen, dass diese Speicherorte auf den Worker-Hosts verfügbar sind, auf denen der Job ausgeführt wird, sodass sie nicht auf S3 hochgeladen werden müssen. 

 In diesem Beispiel erstellen Sie `SHARED` Dateisystemspeicherorte `WSAll` in Ihrer CloudShell AWS-Umgebung und fügen dann Dateien zu diesen Dateisystemspeicherorten hinzu. Verwenden Sie den folgenden Befehl: 

```
# Change the value of WSALL_ID to the identifier of the WSAll storage profile
WSALL_ID=sp-{{00112233445566778899aabbccddeeff}}

sudo mkdir -p /shared/common /shared/projects/project1 /shared/projects/project2
sudo chown -R cloudshell-user:cloudshell-user /shared

for d in /shared/common /shared/projects/project1 /shared/projects/project2; do
  echo "File contents for $d" > ${d}/file.txt
done
```

 Als Nächstes fügen Sie dem Job-Bundle eine Asset-Referenzdatei hinzu, die alle Dateien enthält, die Sie als Eingaben für den Job erstellt haben. Verwenden Sie den folgenden Befehl: 

```
cat > ${HOME}/job_attachments_devguide/asset_references.yaml << EOF
assetReferences:
  inputs:
    filenames:
    - /shared/common/file.txt
    directories:
    - /shared/projects/project1
    - /shared/projects/project2
EOF
```

 Als Nächstes konfigurieren Sie die Deadline Cloud-CLI so, dass Jobs mit dem `WSAll` Speicherprofil gesendet werden, und senden Sie dann das Job-Bundle: 

```
# 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}}
# Change the value of WSALL_ID to the identifier of the WSAll storage profile
WSALL_ID=sp-{{00112233445566778899aabbccddeeff}}

deadline config set settings.storage_profile_id $WSALL_ID

deadline bundle submit --farm-id $FARM_ID --queue-id $QUEUE1_ID job_attachments_devguide/
```

Deadline Cloud lädt zwei Dateien auf Amazon S3 hoch, wenn Sie den Job einreichen. Sie können die Manifestobjekte für den Job von S3 herunterladen, um die hochgeladenen Dateien zu sehen: 

```
for manifest in $( \
  aws deadline get-job --farm-id $FARM_ID --queue-id $QUEUE1_ID --job-id $JOB_ID \
    --query 'attachments.manifests[].inputManifestPath' \
    | jq -r '.[]'
); do
  echo "Manifest object: $manifest"
  aws s3 cp --quiet s3://$Q1_S3_BUCKET/DeadlineCloud/Manifests/$manifest /dev/stdout | jq .
done
```

 In diesem Beispiel gibt es eine einzelne Manifestdatei mit dem folgenden Inhalt: 

```
{
    "hashAlg": "xxh128",
    "manifestVersion": "2023-03-03",
    "paths": [
        {
            "hash": "87cb19095dd5d78fcaf56384ef0e6241",
            "mtime": 1721147454416085,
            "path": "home/cloudshell-user/job_attachments_devguide/script.sh",
            "size": 39
        },
        {
            "hash": "af5a605a3a4e86ce7be7ac5237b51b79",
            "mtime": 1721163773582362,
            "path": "shared/projects/project2/file.txt",
            "size": 44
        }
    ],
    "totalSize": 83
}
```

 Verwenden Sie die [GetJob Operation](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html) für das Manifest, um zu überprüfen, ob der „/“ `rootPath` ist. 

```
aws deadline get-job --farm-id $FARM_ID --queue-id $QUEUE1_ID --job-id $JOB_ID --query 'attachments.manifests[*]'
```

 Der Stammpfad für eine Reihe von Eingabedateien ist immer der längste gemeinsame Unterpfad dieser Dateien. Wenn Ihr Job Windows stattdessen von eingereicht wurde und es Eingabedateien ohne gemeinsamen Unterpfad gibt, weil sie sich auf unterschiedlichen Laufwerken befanden, sehen Sie auf jedem Laufwerk einen eigenen Stammpfad. Die Pfade in einem Manifest beziehen sich immer auf den Stammpfad des Manifests. Es wurden also folgende Eingabedateien hochgeladen: 
+  `/home/cloudshell-user/job_attachments_devguide/script.sh`— Die Skriptdatei im Job-Bundle. 
+  `/shared/projects/project2/file.txt`— Die Datei an einem `SHARED` Dateisystemspeicherort im `WSAll` Speicherprofil, der **nicht** in der Liste der erforderlichen Dateisystemspeicherorte für die Warteschlange enthalten ist`Q1`. 

Die Dateien an den Dateisystemspeicherorten `FSCommon` (`/shared/common/file.txt`) und `FS1` (`/shared/projects/project1/file.txt`) sind nicht in der Liste enthalten. Dies liegt daran, dass sich diese Dateisystemspeicherorte `SHARED` im `WSAll` Speicherprofil und beide in der Liste der erforderlichen Dateisystemspeicherorte in der Warteschlange befinden`Q1`. 

Sie können die Dateisystemspeicherorte sehen, die `SHARED` für einen Job in Betracht gezogen werden, der mit einem bestimmten Speicherprofil im Rahmen des [GetStorageProfileForQueue Vorgangs](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetStorageProfileForQueue.html) eingereicht wird. `Q1`Verwenden Sie den folgenden Befehl, um das Speicherprofil `WSAll` für die Warteschlange abzufragen: 

```
aws deadline get-storage-profile --farm-id $FARM_ID --storage-profile-id $WSALL_ID

aws deadline get-storage-profile-for-queue --farm-id $FARM_ID --queue-id $QUEUE1_ID --storage-profile-id $WSALL_ID
```