

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Deadline Cloud가 업로드할 파일을 선택하는 방법
<a name="how-job-attachments-decides-what-to-upload-to-amazon-s3"></a>

 작업 첨부 파일이 Amazon S3에 업로드할 때 작업에 대한 입력으로 고려하는 파일 및 디렉터리는 다음과 같습니다.
+  또는 값을 사용하여 작업 번들의 작업 템플릿에 정의된 모든 `PATH`유형 작업 파라미터의 `dataFlow` 값`IN`입니다`INOUT`.
+  작업 번들의 자산 참조 파일에 입력으로 나열된 파일 및 디렉터리입니다.

 스토리지 프로파일이 없는 작업을 제출하면 업로드 대상으로 간주되는 모든 파일이 업로드됩니다. 스토리지 프로파일이 있는 작업을 제출하면 파일이 대기열에 필요한 파일 시스템 위치이기도 한 스토리지 프로파일의 `SHARED`유형 파일 시스템 위치에 있는 경우 Amazon S3에 업로드되지 않습니다. 이러한 위치는 작업을 실행하는 작업자 호스트에서 사용할 수 있을 것으로 예상되므로 S3에 업로드할 필요가 없습니다.

 이 예제에서는 AWS CloudShell 환경의 `WSAll`에서 `SHARED` 파일 시스템 위치를 생성한 다음 해당 파일 시스템 위치에 파일을 추가합니다. 다음 명령을 사용합니다.

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

 그런 다음 작업에 대한 입력으로 생성한 모든 파일이 포함된 작업 번들에 자산 참조 파일을 추가합니다. 다음 명령을 사용합니다.

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

 그런 다음 `WSAll` 스토리지 프로파일이 있는 작업을 제출하도록 Deadline Cloud CLI를 구성한 다음 작업 번들을 제출합니다.

```
# 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는 작업을 제출할 때 Amazon S3에 두 개의 파일을 업로드합니다. S3에서 작업에 대한 매니페스트 객체를 다운로드하여 업로드된 파일을 볼 수 있습니다.

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

 이 예제에는 다음 내용이 포함된 단일 매니페스트 파일이 있습니다.

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

 매니페스트에 [GetJob 작업을](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html) 사용하여가 "/"`rootPath`인지 확인합니다.

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

 입력 파일 세트의 루트 경로는 항상 해당 파일의 가장 긴 공통 하위 경로입니다. 작업이 Windows 대신에서 제출되었고 다른 드라이브에 있었기 때문에 공통 하위 경로가 없는 입력 파일이 있는 경우 각 드라이브에 별도의 루트 경로가 표시됩니다. 매니페스트의 경로는 항상 매니페스트의 루트 경로를 기준으로 하므로 업로드된 입력 파일은 다음과 같습니다.
+  `/home/cloudshell-user/job_attachments_devguide/script.sh` - 작업 번들의 스크립트 파일입니다.
+  `/shared/projects/project2/file.txt` - 대기열에 필요한 `SHARED` 파일 시스템 위치 목록에 **없는** `WSAll` 스토리지 프로파일의 파일 시스템 위치에 있는 파일입니다`Q1`.

파일 시스템 위치`FSCommon`(`/shared/common/file.txt`) 및 `FS1` (`/shared/projects/project1/file.txt`)의 파일은 목록에 없습니다. 그 이유는 이러한 파일 시스템 위치가 `WSAll` 스토리지 프로파일`SHARED`에 있고 둘 다 대기열의 필수 파일 시스템 위치 목록에 있기 때문입니다`Q1`.

[GetStorageProfileForQueue 작업을](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetStorageProfileForQueue.html) 사용하여 특정 스토리지 프로파일과 함께 제출된 작업에 `SHARED` 대해 고려되는 파일 시스템 위치를 볼 수 있습니다. `WSAll` 대기열의 스토리지 프로파일을 쿼리하려면 다음 명령을 `Q1` 사용합니다.

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