

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 finden Jobs Eingabedateien für Jobanhänge
<a name="how-jobs-find-job-attachments-input-files"></a>

 Damit ein Job die Dateien verwenden kann, die Deadline Cloud mithilfe von Job-Anhängen auf Amazon S3 hochlädt, benötigt Ihr Job diese Dateien, die über das Dateisystem auf den Worker-Hosts verfügbar sind. Wenn eine [Sitzung](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run#sessions) für Ihren Job auf einem Worker-Host läuft, lädt Deadline Cloud die Eingabedateien für den Job in ein temporäres Verzeichnis auf dem lokalen Laufwerk des Worker-Hosts herunter und fügt Pfadzuordnungsregeln für jeden Root-Pfad des Jobs zu seinem Dateisystem-Speicherort auf dem lokalen Laufwerk hinzu. 

 Starten Sie für dieses Beispiel den Deadline Cloud-Worker-Agent auf einer CloudShell AWS-Tab. Lassen Sie alle zuvor eingereichten Jobs fertig laufen und löschen Sie dann die Job-Logs aus dem Logs-Verzeichnis: 

```
rm -rf ~/devdemo-logs/queue-*
```

 Das folgende Skript ändert das Job-Bundle so, dass es alle Dateien im temporären Arbeitsverzeichnis der Sitzung und den Inhalt der Datei mit den Pfadzuordnungsregeln anzeigt, und sendet dann einen Job mit dem geänderten Paket: 

```
# 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

cat > ~/job_attachments_devguide/script.sh << EOF
#!/bin/bash

echo "Session working directory is: \$(pwd)"
echo
echo "Contents:"
find . -type f
echo
echo "Path mapping rules file: \$1"
jq . \$1
EOF

cat > ~/job_attachments_devguide/template.yaml << EOF
specificationVersion: jobtemplate-2023-09
name: "Job Attachments Explorer"
parameterDefinitions:
- name: ScriptFile
  type: PATH
  default: script.sh
  dataFlow: IN
  objectType: FILE
steps:
- name: Step
  script:
    actions:
      onRun:
        command: /bin/bash
        args:
        - "{{Param.ScriptFile}}"
        - "{{Session.PathMappingRulesFile}}"
EOF

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

 Sie können sich das Protokoll der Ausführung des Jobs ansehen, nachdem er vom Worker in Ihrer AWS CloudShell Umgebung ausgeführt wurde: 

```
cat demoenv-logs/queue-*/session*.log
```

Aus dem Protokoll geht hervor, dass in der Sitzung als Erstes die beiden Eingabedateien für den Job auf den Worker heruntergeladen werden: 

```
2024-07-17 01:26:37,824 INFO ==============================================
2024-07-17 01:26:37,825 INFO --------- Job Attachments Download for Job
2024-07-17 01:26:37,825 INFO ==============================================
2024-07-17 01:26:37,825 INFO Syncing inputs using Job Attachments
2024-07-17 01:26:38,116 INFO Downloaded 142.0 B / 186.0 B of 2 files (Transfer rate: 0.0 B/s)
2024-07-17 01:26:38,174 INFO Downloaded 186.0 B / 186.0 B of 2 files (Transfer rate: 733.0 B/s)
2024-07-17 01:26:38,176 INFO Summary Statistics for file downloads:
Processed 2 files totaling 186.0 B.
Skipped re-processing 0 files totaling 0.0 B.
Total processing time of 0.09752 seconds at 1.91 KB/s.
```

 Als Nächstes folgt die Ausgabe von `script.sh` run by the job: 
+  Die Eingabedateien, die beim Absenden des Jobs hochgeladen wurden, befinden sich in einem Verzeichnis, dessen Name mit „assetroot“ beginnt, im temporären Verzeichnis der Sitzung. 
+  Die Pfade der Eingabedateien wurden relativ zum Verzeichnis „assetroot“ verschoben und nicht relativ zum Stammpfad für das Eingabemanifest des Jobs (). `"/"`
+  Die Datei mit den Regeln für die Pfadzuweisung enthält eine zusätzliche Regel, die dem absoluten Pfad des `"/"` Verzeichnisses „assetroot“ neu zugeordnet wird. 

 Beispiel: 

```
2024-07-17 01:26:38,264 INFO Output:
2024-07-17 01:26:38,267 INFO Session working directory is: /sessions/session-{{5b33f}}
2024-07-17 01:26:38,267 INFO 
2024-07-17 01:26:38,267 INFO Contents:
2024-07-17 01:26:38,269 INFO ./tmp_xdhbsdo.sh
2024-07-17 01:26:38,269 INFO ./tmpdi00052b.json
2024-07-17 01:26:38,269 INFO ./assetroot-{{assetroot-3751a}}/shared/projects/project2/file.txt
2024-07-17 01:26:38,269 INFO ./assetroot-{{assetroot-3751a}}/home/cloudshell-user/job_attachments_devguide/script.sh
2024-07-17 01:26:38,269 INFO 
2024-07-17 01:26:38,270 INFO Path mapping rules file: /sessions/session-{{5b33f}}/tmpdi00052b.json
2024-07-17 01:26:38,282 INFO {
2024-07-17 01:26:38,282 INFO   "version": "pathmapping-1.0",
2024-07-17 01:26:38,282 INFO   "path_mapping_rules": [
2024-07-17 01:26:38,282 INFO     {
2024-07-17 01:26:38,282 INFO       "source_path_format": "POSIX",
2024-07-17 01:26:38,282 INFO       "source_path": "/shared/projects/project1",
2024-07-17 01:26:38,283 INFO       "destination_path": "/mnt/projects/project1"
2024-07-17 01:26:38,283 INFO     },
2024-07-17 01:26:38,283 INFO     {
2024-07-17 01:26:38,283 INFO       "source_path_format": "POSIX",
2024-07-17 01:26:38,283 INFO       "source_path": "/shared/common",
2024-07-17 01:26:38,283 INFO       "destination_path": "/mnt/common"
2024-07-17 01:26:38,283 INFO     },
2024-07-17 01:26:38,283 INFO     {
2024-07-17 01:26:38,283 INFO       "source_path_format": "POSIX",
2024-07-17 01:26:38,283 INFO       "source_path": "/",
2024-07-17 01:26:38,283 INFO       "destination_path": "/sessions/session-{{5b33f}}/assetroot-{{assetroot-3751a}}"
2024-07-17 01:26:38,283 INFO     }
2024-07-17 01:26:38,283 INFO   ]
2024-07-17 01:26:38,283 INFO }
```

**Anmerkung**  
 Wenn der Job, den Sie einreichen, mehrere Manifeste mit unterschiedlichen Stammpfaden enthält, gibt es für jeden Stammpfad ein anderes Verzeichnis mit dem Namen „assetroot“. 

 Wenn Sie auf den verschobenen Dateisystemspeicherort einer Ihrer Eingabedateien, Verzeichnisse oder Dateisystemverzeichnisse verweisen müssen, können Sie entweder die Datei mit den Pfadzuordnungsregeln in Ihrem Job verarbeiten und die Neuzuordnung selbst durchführen oder der Jobvorlage in Ihrem Job-Bundle einen `PATH` Typ-Job-Parameter hinzufügen und den Wert, den Sie neu zuordnen müssen, als Wert dieses Parameters übergeben. Im folgenden Beispiel wird das Auftragspaket so geändert, dass es einen dieser Auftragsparameter hat, und sendet dann einen Job mit dem Speicherort des Dateisystems `/shared/projects/project2` als Wert: 

```
cat > ~/job_attachments_devguide/template.yaml << EOF
specificationVersion: jobtemplate-2023-09
name: "Job Attachments Explorer"
parameterDefinitions:
- name: LocationToRemap
  type: PATH
steps:
- name: Step
  script:
    actions:
      onRun:
        command: /bin/echo
        args:
        - "The location of {{RawParam.LocationToRemap}} in the session is {{Param.LocationToRemap}}"
EOF

deadline bundle submit --farm-id $FARM_ID --queue-id $QUEUE1_ID job_attachments_devguide/ \
  -p LocationToRemap=/shared/projects/project2
```

 Die Protokolldatei für die Ausführung dieses Jobs enthält seine Ausgabe: 

```
2024-07-17 01:40:35,283 INFO Output:
2024-07-17 01:40:35,284 INFO The location of /shared/projects/project2 in the session is /sessions/session-{{5b33f}}/assetroot-{{assetroot-3751a}}
```