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.
Soumettre avec Deadline Cloud
Pour exécuter des tâches Deadline Cloud sur les hôtes de vos collaborateurs, vous créez et utilisez un ensemble de tâches Open Job Description (OpenJD) pour configurer une tâche. Le bundle configure la tâche, par exemple en spécifiant les fichiers d'entrée d'une tâche et l'endroit où écrire la sortie de la tâche. Cette rubrique inclut des exemples de méthodes permettant de configurer un ensemble de tâches.
Avant de pouvoir suivre les procédures décrites dans cette section, vous devez effectuer les opérations suivantes :
Pour utiliser AWS Deadline Cloud afin d'exécuter des tâches, procédez comme suit. Utilisez le premier AWS CloudShell onglet pour soumettre des offres d'emploi à votre parc de développeurs. Utilisez le deuxième CloudShell onglet pour afficher la sortie de l'agent de travail.
Rubriques
Soumettez le travail_simple exemple
Après avoir créé un parc de serveurs et géré l'agent de travail, vous pouvez envoyer l'simple_jobexemple à Deadline Cloud.
Pour soumettre le travail_simple échantillon pour Deadline Cloud
-
Choisissez votre premier CloudShell onglet.
-
Téléchargez l'exemple depuis GitHub.
cd ~ git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
Accédez au répertoire des exemples de lots de tâches.
cd ~/deadline-cloud-samples/job_bundles/ -
Soumettez l'simple_jobéchantillon.
deadline bundle submit simple_job -
Choisissez votre deuxième CloudShell onglet pour afficher les résultats de journalisation concernant les appels
BatchGetJobEntities, l'obtention d'une session et l'exécution d'une action de session.... [2024-03-27 16:00:21,846][INFO ] 🔷 Session.Starting 🔷 [session-053d77cef82648fe2] Starting new Session. [queue-3ba4ff683ff54db09b851a2ed8327d7b/job-d34cc98a6e234b6f82577940ab4f76c6] [2024-03-27 16:00:21,853][INFO ] 📤 API.Req 📤 [deadline:BatchGetJobEntity] resource={'farm-id': 'farm-3e24cfc9bbcd423e9c1b6754bc1', 'fleet-id': 'fleet-246ee60f46d44559b6cce010d05', 'worker-id': 'worker-75e0fce9c3c344a69bff57fcd83'} params={'identifiers': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab4'}}]} request_url=https://scheduling.deadline.us-west-2.amazonaws.com/2023-10-12/farms/farm-3e24cfc9bbcd423e /fleets/fleet-246ee60f46d44559b1 /workers/worker- 75e0fce9c3c344a69b /batchGetJobEntity [2024-03-27 16:00:22,013][INFO ] 📥 API.Resp 📥 [deadline:BatchGetJobEntity](200) params={'entities': [{'jobDetails': {'jobId': 'job-d34cc98a6e234b6f82577940ab6', 'jobRunAsUser': {'posix': {'user': 'job-user', 'group': 'job-group'}, 'runAs': 'QUEUE_CONFIGURED_USER'}, 'logGroupName': '/aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83', 'parameters': '*REDACTED*', 'schemaVersion': 'jobtemplate-2023-09'}}], 'errors': []} request_id=a3f55914-6470-439e-89e5-313f0c6 [2024-03-27 16:00:22,013][INFO ] 🔷 Session.Add 🔷 [session-053d77cef82648fea9c69827182] Appended new SessionActions. (ActionIds: ['sessionaction-053d77cef82648fea9c69827182-0']) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6] [2024-03-27 16:00:22,014][WARNING ] 🔷 Session.User 🔷 [session-053d77cef82648fea9c69827182] Running as the Worker Agent's user. (User: cloudshell-user) [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ac6] [2024-03-27 16:00:22,015][WARNING ] 🔷 Session.AWSCreds 🔷 [session-053d77cef82648fea9c69827182] AWS Credentials are not available: Queue has no IAM Role. [queue-3ba4ff683ff54db09b851a2ed8b/job-d34cc98a6e234b6f82577940ab6] [2024-03-27 16:00:22,026][INFO ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: AWS CloudWatch Logs. (LogDestination: /aws/deadline/farm-3e24cfc9bbcd423e9c1b6754bc1/queue-3ba4ff683ff54db09b851a2ed83/session-053d77cef82648fea9c69827181) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4] [2024-03-27 16:00:22,026][INFO ] 🔷 Session.Logs 🔷 [session-053d77cef82648fea9c69827182] Logs streamed to: local file. (LogDestination: /home/cloudshell-user/demoenv-logs/queue-3ba4ff683ff54db09b851a2ed8b/session-053d77cef82648fea9c69827182.log) [queue-3ba4ff683ff54db09b851a2ed83/job-d34cc98a6e234b6f82577940ab4] ...Note
Seule la sortie de journalisation de l'agent de travail est affichée. Il existe un journal distinct pour la session qui exécute la tâche.
-
Choisissez votre premier onglet, puis examinez les fichiers journaux écrits par l'agent de travail.
-
Accédez au répertoire des journaux de l'agent de travail et affichez son contenu.
cd ~/demoenv-logs ls -
Imprimez le premier fichier journal créé par l'agent de travail.
cat worker-agent-bootstrap.logCe fichier contient les résultats de l'agent de travail expliquant comment il a appelé l'API Deadline Cloud pour créer une ressource de personnel dans votre parc, puis a assumé le rôle de flotte.
-
Imprimez la sortie du fichier journal lorsque l'agent de travail rejoint la flotte.
cat worker-agent.logCe journal contient des résultats concernant toutes les actions entreprises par l'agent de travail, mais ne contient pas de résultats concernant les files d'attente à partir desquelles il exécute les tâches, à l'exception des ID de ces ressources.
-
Imprimez les fichiers journaux de chaque session dans un répertoire portant le même nom que l'ID de ressource de la file d'attente.
cat $DEV_QUEUE_ID/session-*.logSi la tâche aboutit, le résultat du fichier journal sera similaire à ce qui suit :
cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)2024-03-27 16:00:22,026 WARNING Session running with no AWS Credentials. 2024-03-27 16:00:22,404 INFO 2024-03-27 16:00:22,405 INFO ============================================== 2024-03-27 16:00:22,405 INFO --------- Running Task 2024-03-27 16:00:22,405 INFO ============================================== 2024-03-27 16:00:22,406 INFO ---------------------------------------------- 2024-03-27 16:00:22,406 INFO Phase: Setup 2024-03-27 16:00:22,406 INFO ---------------------------------------------- 2024-03-27 16:00:22,406 INFO Writing embedded files for Task to disk. 2024-03-27 16:00:22,406 INFO Mapping: Task.File.runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz 2024-03-27 16:00:22,406 INFO Wrote: runScript -> /sessions/session-053d77cef82648fea9c698271812a/embedded_fileswa_gj55_/tmp2u9yqtsz 2024-03-27 16:00:22,407 INFO ---------------------------------------------- 2024-03-27 16:00:22,407 INFO Phase: Running action 2024-03-27 16:00:22,407 INFO ---------------------------------------------- 2024-03-27 16:00:22,407 INFO Running command /sessions/session-053d77cef82648fea9c698271812a/tmpzuzxpslm.sh 2024-03-27 16:00:22,414 INFO Command started as pid: 471 2024-03-27 16:00:22,415 INFO Output: 2024-03-27 16:00:22,420 INFO Welcome to AWS Deadline Cloud! 2024-03-27 16:00:22,571 INFO 2024-03-27 16:00:22,572 INFO ============================================== 2024-03-27 16:00:22,572 INFO --------- Session Cleanup 2024-03-27 16:00:22,572 INFO ============================================== 2024-03-27 16:00:22,572 INFO Deleting working directory: /sessions/session-053d77cef82648fea9c698271812a
-
-
Imprimez les informations relatives à la tâche.
deadline job getLorsque vous soumettez la tâche, le système l'enregistre par défaut afin que vous n'ayez pas à saisir l'ID de la tâche.
Soumettre un travail_simple avec un paramètre
Vous pouvez soumettre des tâches avec des paramètres. Dans la procédure suivante, vous modifiez le simple_job modèle pour inclure un message personnalisé, vous soumettez lesimple_job, puis vous imprimez le fichier journal de session pour afficher le message.
Pour soumettre le travail_simple échantillon avec un paramètre
-
Sélectionnez votre premier CloudShell onglet, puis accédez au répertoire des exemples de lots de tâches.
cd ~/deadline-cloud-samples/job_bundles/ -
Imprimez le contenu du simple_job modèle.
cat simple_job/template.yamlLa
parameterDefinitionssection contenant leMessageparamètre doit ressembler à ce qui suit :parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud! -
Soumettez l'simple_jobexemple avec une valeur de paramètre, puis attendez la fin de l'exécution de la tâche.
deadline bundle submit simple_job \ -p "Message=Greetings from the developer getting started guide." -
Pour voir le message personnalisé, consultez le fichier journal de session le plus récent.
cd ~/demoenv-logs cat $DEV_QUEUE_ID/$(ls -t $DEV_QUEUE_ID | head -1)
Créez un ensemble de tâches simple_file_job avec file I/O
Un travail de rendu doit lire la définition de la scène, effectuer le rendu d'une image à partir de celle-ci, puis enregistrer cette image dans un fichier de sortie. Vous pouvez simuler cette action en demandant à la tâche de calculer le hachage de l'entrée au lieu de générer une image.
Pour créer un ensemble de tâches simple_file_job avec le fichier I/O
-
Sélectionnez votre premier CloudShell onglet, puis accédez au répertoire des exemples de lots de tâches.
cd ~/deadline-cloud-samples/job_bundles/ -
Faites une copie de
simple_jobavec le nouveau nomsimple_file_job.cp -r simple_job simple_file_job -
Modifiez le modèle de tâche comme suit :
Note
Nous vous recommandons de l'utiliser nano pour ces étapes. Si vous préférez utiliserVim, vous devez définir son mode de collage à l'aide de
:set paste.-
Ouvrez le modèle dans un éditeur de texte.
nano simple_file_job/template.yaml -
Ajoutez les éléments suivants
typeobjectType, etdataFlowparameterDefinitions.- name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT -
Ajoutez la commande de
bashscript suivante à la fin du fichier qui lit le fichier d'entrée et écrit dans le fichier de sortie.# hash the input file, and write that to the outputsha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"La mise à jour
template.yamldoit correspondre exactement à ce qui suit :specificationVersion: 'jobtemplate-2023-09' name: Simple File Job Bundle Example parameterDefinitions: - name: Message type: STRING default: Welcome to AWS Deadline Cloud! - name: InFile type: PATH objectType: FILE dataFlow: IN - name: OutFile type: PATH objectType: FILE dataFlow: OUT steps: - name: WelcomeToDeadlineCloud script: actions: onRun: command: '{{Task.File.Run}}' embeddedFiles: - name: Run type: TEXT runnable: true data: | #!/usr/bin/env bash echo "{{Param.Message}}" # hash the input file, and write that to the output sha256sum "{{Param.InFile}}" > "{{Param.OutFile}}"Note
Si vous souhaitez ajuster l'espacement dans le
template.yaml, veillez à utiliser des espaces plutôt que des indentations. -
Enregistrez le fichier et quittez l'éditeur de texte.
-
-
Fournissez des valeurs de paramètres pour les fichiers d'entrée et de sortie pour soumettre le simple_file_job.
deadline bundle submit simple_file_job \ -p "InFile=simple_job/template.yaml" \ -p "OutFile=hash.txt" -
Imprimez les informations relatives à la tâche.
deadline job get-
Vous verrez des résultats tels que les suivants :
parameters: Message: string: Welcome to AWS Deadline Cloud! InFile: path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml OutFile: path: /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/hash.txt -
Bien que vous n'ayez fourni que des chemins relatifs, le chemin complet est défini pour les paramètres. Le AWS CLI joint le répertoire de travail actuel à tous les chemins fournis en tant que paramètres lorsque les chemins ont le type
PATH. -
L'agent de travail qui s'exécute dans l'autre fenêtre du terminal reprend et exécute la tâche. Cette action crée le
hash.txtfichier que vous pouvez visualiser à l'aide de la commande suivante.cat hash.txtCette commande affichera une sortie similaire à la suivante.
eaa2df5d34b54be5ac34c56a24a8c237b8487231a607eaf530a04d76b89c9cd3 /local/home/cloudshell-user/BundleFiles/JobBundle-Examples/simple_job/template.yaml
-
Étapes suivantes
Après avoir appris à soumettre des tâches simples à l'aide de l'interface de ligne de commande Deadline Cloud, vous pourrez découvrir :
-
Soumettez des offres d'emploi avec des pièces jointes dans Deadline Cloudpour savoir comment exécuter des tâches sur des hôtes exécutant différents systèmes d'exploitation.
-
Ajoutez une flotte gérée par des services à votre parc de développeurs dans Deadline Cloudpour exécuter vos tâches sur des hôtes gérés par Deadline Cloud.
-
Nettoyez les ressources de votre ferme dans Deadline Cloudpour fermer les ressources que vous avez utilisées pour ce didacticiel.