

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como os trabalhos encontram arquivos de entrada de anexos de trabalhos
<a name="how-jobs-find-job-attachments-input-files"></a>

 Para que um trabalho use os arquivos que o Deadline Cloud carrega para o Amazon S3 usando anexos de trabalho, seu trabalho precisa desses arquivos disponíveis por meio do sistema de arquivos nos hosts do trabalhador. Quando uma [sessão](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run#sessions) do seu trabalho é executada em um host de trabalho, o Deadline Cloud baixa os arquivos de entrada do trabalho em um diretório temporário na unidade local do host de trabalho e adiciona regras de mapeamento de caminhos para cada um dos caminhos raiz do trabalho na localização do sistema de arquivos na unidade local. 

 Neste exemplo, inicie o agente Deadline Cloud Worker em uma CloudShell guia da AWS. Deixe que todos os trabalhos enviados anteriormente terminem de ser executados e, em seguida, exclua os registros de trabalhos do diretório de registros: 

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

 O script a seguir modifica o pacote de tarefas para mostrar todos os arquivos no diretório de trabalho temporário da sessão e o conteúdo do arquivo de regras de mapeamento de caminhos e, em seguida, envia uma tarefa com o pacote modificado: 

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

 Você pode ver o registro da execução do trabalho após ele ter sido executado pelo trabalhador em seu AWS CloudShell ambiente: 

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

O registro mostra que a primeira coisa que ocorre na sessão é que os dois arquivos de entrada do trabalho são baixados para o trabalhador: 

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

 A seguir está a saída de `script.sh` run by the job: 
+  Os arquivos de entrada enviados quando o trabalho foi enviado estão localizados em um diretório cujo nome começa com “assetroot” no diretório temporário da sessão. 
+  Os caminhos dos arquivos de entrada foram realocados em relação ao diretório “assetroot” em vez de em relação ao caminho raiz do manifesto de entrada () do trabalho. `"/"`
+  O arquivo de regras de mapeamento de caminhos contém uma regra adicional que é remapeada `"/"` para o caminho absoluto do diretório “assetroot”. 

 Por exemplo: 

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

**nota**  
 Se o trabalho que você enviar tiver vários manifestos com caminhos raiz diferentes, há um diretório com o nome “assetroot” diferente para cada um dos caminhos raiz. 

 Se precisar referenciar a localização do sistema de arquivos realocado de um dos seus arquivos de entrada, diretórios ou localizações do sistema de arquivos, você pode processar o arquivo de regras de mapeamento de caminhos em sua tarefa e realizar o remapeamento sozinho, ou adicionar um parâmetro de `PATH` tipo de tarefa ao modelo de tarefa em seu pacote de tarefas e passar o valor que você precisa remapear como o valor desse parâmetro. Por exemplo, o exemplo a seguir modifica o pacote de tarefas para ter um desses parâmetros de tarefa e, em seguida, envia uma tarefa com a localização `/shared/projects/project2` do sistema de arquivos como seu valor: 

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

 O arquivo de log para a execução desse trabalho contém sua saída: 

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