

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Comment Deadline Cloud choisit les fichiers à télécharger
<a name="how-job-attachments-decides-what-to-upload-to-amazon-s3"></a>

 Les fichiers et répertoires que les pièces jointes aux tâches considèrent comme des entrées pour votre tâche sont les suivants : 
+  Les valeurs de tous les paramètres de tâche de `PATH` type -type définis dans le modèle de tâches du bundle de tâches avec une `dataFlow` valeur de `IN` ou`INOUT`.
+  Les fichiers et répertoires répertoriés en tant qu'entrées dans le fichier de référence des actifs du bundle de tâches. 

 Si vous soumettez une tâche sans profil de stockage, tous les fichiers considérés pour le téléchargement sont chargés. Si vous soumettez une tâche avec un profil de stockage, les fichiers ne sont pas chargés vers Amazon S3 s'ils se trouvent dans les emplacements du système de fichiers de `SHARED` type du profil de stockage, qui sont également des emplacements de système de fichiers obligatoires pour la file d'attente. Ces emplacements sont censés être disponibles sur les hôtes de travail qui exécutent la tâche. Il n'est donc pas nécessaire de les télécharger sur S3. 

 Dans cet exemple, vous créez des emplacements de système de `SHARED` fichiers `WSAll` dans votre CloudShell environnement AWS, puis vous ajoutez des fichiers à ces emplacements de système de fichiers. Utilisez la commande suivante : 

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

 Ajoutez ensuite un fichier de références d'actifs au bundle de tâches qui inclut tous les fichiers que vous avez créés en tant qu'entrées pour le travail. Utilisez la commande suivante : 

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

 Configurez ensuite la CLI de Deadline Cloud pour soumettre les tâches avec le profil de `WSAll` stockage, puis soumettez le bundle de tâches : 

```
# 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 télécharge deux fichiers sur Amazon S3 lorsque vous soumettez la tâche. Vous pouvez télécharger les objets du manifeste de la tâche depuis S3 pour voir les fichiers téléchargés : 

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

 Dans cet exemple, il existe un seul fichier manifeste dont le contenu est le suivant : 

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

 Utilisez l'[GetJob opération](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html) pour le manifeste pour vérifier qu'il s'`rootPath`agit de «/». 

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

 Le chemin racine d'un ensemble de fichiers d'entrée est toujours le sous-chemin commun le plus long de ces fichiers. Si votre tâche a été soumise à la Windows place et que certains fichiers d'entrée n'ont aucun sous-chemin commun parce qu'ils se trouvent sur des lecteurs différents, vous voyez un chemin racine distinct sur chaque lecteur. Les chemins d'un manifeste sont toujours relatifs au chemin racine du manifeste. Les fichiers d'entrée qui ont été téléchargés sont donc les suivants : 
+  `/home/cloudshell-user/job_attachments_devguide/script.sh`— Le fichier de script contenu dans le bundle de tâches. 
+  `/shared/projects/project2/file.txt`— Le fichier situé dans un emplacement `SHARED` du système de fichiers dans le profil `WSAll` de stockage qui **ne figure pas** dans la liste des emplacements de système de fichiers requis pour la file d'attente`Q1`. 

Les fichiers situés dans les emplacements du système de fichiers `FSCommon` (`/shared/common/file.txt`) et `FS1` (`/shared/projects/project1/file.txt`) ne figurent pas dans la liste. Cela est dû au fait que ces emplacements de système de fichiers se trouvent `SHARED` dans le profil `WSAll` de stockage et qu'ils figurent tous deux dans la liste des emplacements de système de fichiers requis dans la file d'attente`Q1`. 

Vous pouvez voir les emplacements du système de fichiers pris en compte `SHARED` pour une tâche soumise avec un profil de stockage particulier lors de l'[GetStorageProfileForQueue opération](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetStorageProfileForQueue.html). Pour rechercher le profil de stockage `WSAll` pour la file d'attente, `Q1` utilisez la commande suivante : 

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