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 o Deadline Cloud faz upload de arquivos para o Amazon S3
Este exemplo mostra como o Deadline Cloud carrega arquivos da sua estação de trabalho ou host de trabalho para o Amazon S3 para que eles possam ser compartilhados. Ele usa um pacote de trabalho de amostra do repositório deadline-cloud-samples no GitHub site e o Deadline Cloud CLI
Comece clonando o repositório deadline-cloud-samples em seu AWS CloudShell ambiente e, em seguida, copie o pacote de tarefas em seu diretório inicial: job_attachments_devguide
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cp -r deadline-cloud-samples/job_bundles/job_attachments_devguide ~/
Instale o Deadline Cloud CLI para enviar pacotes de tarefas:
pip install deadline --upgrade
O pacote de job_attachments_devguide tarefas tem uma única etapa com uma tarefa que executa um script bash shell cuja localização do sistema de arquivos é passada como um parâmetro de trabalho. A definição do parâmetro de trabalho é:
...
- name: ScriptFile
type: PATH
default: script.sh
dataFlow: IN
objectType: FILE
... O IN valor da dataFlow propriedade informa aos anexos da tarefa que o valor do ScriptFile parâmetro é uma entrada para a tarefa. O valor da default propriedade é um local relativo ao diretório do pacote de tarefas, mas também pode ser um caminho absoluto. Essa definição de parâmetro declara o script.sh arquivo no diretório do pacote de tarefas como um arquivo de entrada necessário para a execução da tarefa.
Em seguida, certifique-se de que o Deadline Cloud CLI não tenha um perfil de armazenamento configurado e envie o trabalho para a filaQ1:
# 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-00112233445566778899aabbccddeeffdeadline config set settings.storage_profile_id '' deadline bundle submit --farm-id $FARM_ID --queue-id $QUEUE1_ID job_attachments_devguide/
A saída do Deadline Cloud CLI após a execução desse comando é semelhante a:
Submitting to Queue: Q1 ... Hashing Attachments [####################################] 100% Hashing Summary: Processed 1 file totaling 39.0 B. Skipped re-processing 0 files totaling 0.0 B. Total processing time of 0.0327 seconds at 1.19 KB/s. Uploading Attachments [####################################] 100% Upload Summary: Processed 1 file totaling 39.0 B. Skipped re-processing 0 files totaling 0.0 B. Total processing time of 0.25639 seconds at 152.0 B/s. Waiting for Job to be created... Submitted job bundle: job_attachments_devguide/ Job creation completed successfully job-74148c13342e4514b63c7a7518657005
Quando você envia o trabalho, o Deadline Cloud primeiro faz o hash do script.sh arquivo e depois o carrega no Amazon S3.
O Deadline Cloud trata o bucket do S3 como armazenamento endereçável ao conteúdo. Os arquivos são enviados para objetos do S3. O nome do objeto é derivado de um hash do conteúdo do arquivo. Se dois arquivos tiverem conteúdo idêntico, eles terão o mesmo valor de hash, independentemente de onde os arquivos estejam localizados ou do nome deles. Esse armazenamento endereçável ao conteúdo permite que o Deadline Cloud evite o upload de um arquivo se ele já estiver disponível.
Você pode usar a AWS CLI para ver os objetos que foram enviados para o Amazon S3:
# The name of queue `Q1`'s job attachments S3 bucket Q1_S3_BUCKET=$( aws deadline get-queue --farm-id $FARM_ID --queue-id $QUEUE1_ID \ --query 'jobAttachmentSettings.s3BucketName' | tr -d '"' ) aws s3 ls s3://$Q1_S3_BUCKET --recursive
Dois objetos foram enviados para o S3:
-
DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128— O conteúdo doscript.sh. O valor87cb19095dd5d78fcaf56384ef0e6241na chave do objeto é o hash do conteúdo do arquivo, e a extensãoxxh128indica que o valor do hash foi calculado como um hash de 128 bits usando o algoritmo xxHash nosite xxHash. -
DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input— O objeto manifesto para o envio do trabalho. Os valores<farm-id><queue-id>, e<guid>são seu identificador de fazenda, identificador de fila e um valor hexidecimal aleatório. O valora1d221c7fd97b08175b3872a37428e8cneste exemplo é um valor de hash calculado a partir da string/home/cloudshell-user/job_attachments_devguide, o diretório em quescript.shestá localizado.
O objeto manifesto contém as informações dos arquivos de entrada em um caminho raiz específico carregado para o S3 como parte do envio do trabalho. Baixe esse arquivo de manifesto (aws
s3 cp s3://$Q1_S3_BUCKET/<objectname>). Seu conteúdo é semelhante a:
{ "hashAlg": "xxh128", "manifestVersion": "2023-03-03", "paths": [ { "hash": "87cb19095dd5d78fcaf56384ef0e6241", "mtime": 1721147454416085, "path": "script.sh", "size": 39 } ], "totalSize": 39 }
Isso indica que o arquivo script.sh foi carregado e o hash do conteúdo desse arquivo é87cb19095dd5d78fcaf56384ef0e6241. Esse valor de hash corresponde ao valor no nome DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128 do objeto. Ele é usado pelo Deadline Cloud para saber qual objeto baixar para o conteúdo desse arquivo.
Para ver o esquema completo do arquivo de manifesto, consulte o repositório deadline-cloud-job-attachments no site.
Ao usar a CreateJob operação, você pode definir a localização dos objetos do manifesto. Você pode usar a GetJob operação para ver a localização:
{ "attachments": { "file system": "COPIED", "manifests": [ { "inputManifestHash": "5b0db3d311805ea8de7787b64cbbe8b3", "inputManifestPath": "<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input", "rootPath": "/home/cloudshell-user/job_attachments_devguide", "rootPathFormat": "posix" } ] }, ... }