

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ジョブがジョブアタッチメント入力ファイルを検索する方法
<a name="how-jobs-find-job-attachments-input-files"></a>

 ジョブアタッチメントを使用して Deadline Cloud が Amazon S3 にアップロードするファイルを使用するジョブには、ワーカーホストのファイルシステムを通じて利用可能なファイルが必要です。ジョブの[セッション](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run#sessions)がワーカーホストで実行されると、Deadline Cloud はジョブの入力ファイルをワーカーホストのローカルドライブの一時ディレクトリにダウンロードし、ジョブの各ルートパスのパスマッピングルールをローカルドライブのファイルシステムの場所に追加します。

 この例では、AWS CloudShell タブで Deadline Cloud ワーカーエージェントを起動します。以前に送信したジョブの実行を終了し、ログディレクトリからジョブログを削除します。

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

 次のスクリプトは、セッションの一時作業ディレクトリ内のすべてのファイルとパスマッピングルールファイルの内容を表示するようにジョブバンドルを変更し、変更されたバンドルでジョブを送信します。

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

 AWS CloudShell 環境内のワーカーによって実行されたジョブの実行のログを確認できます。

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

ログは、セッションで最初に発生するのは、ジョブの 2 つの入力ファイルがワーカーにダウンロードされることを示しています。

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

 次に、ジョブによって`script.sh`実行された からの出力を示します。
+  ジョブの送信時にアップロードされた入力ファイルは、名前がセッションの一時ディレクトリの「assetroot」で始まるディレクトリにあります。
+  入力ファイルのパスは、ジョブの入力マニフェスト () のルートパスではなく、「アサルート」ディレクトリに対して再配置されました`"/"`。
+  パスマッピングルールファイルには、「assetroot」ディレクトリの絶対パス`"/"`に再マッピングする追加のルールが含まれています。

 例えば、次のようになります。

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

**注記**  
 送信するジョブに異なるルートパスを持つ複数のマニフェストがある場合、ルートパスごとに異なる「assetroot」という名前のディレクトリがあります。

 入力ファイル、ディレクトリ、またはファイルシステムの場所のいずれかの再配置されたファイルシステムの場所を参照する必要がある場合は、ジョブのパスマッピングルールファイルを処理して再マッピングを自分で実行するか、ジョブバンドルのジョブテンプレートに`PATH`タイプジョブパラメータを追加して、そのパラメータの値として再マッピングする必要がある値を渡すことができます。たとえば、次の例では、これらのジョブパラメータのいずれかを持つようにジョブバンドルを変更し、ファイルシステムの場所を値`/shared/projects/project2`としてジョブを送信します。

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

 このジョブの実行のログファイルには、出力が含まれています。

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