View a markdown version of this page

Définissez le chemin dans un environnement de file d'attente - Deadline Cloud

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.

Définissez le chemin dans un environnement de file d'attente

Utilisez les environnements OpenJD pour fournir de nouvelles commandes dans un environnement. Vous créez d'abord un répertoire contenant des fichiers de script, puis vous ajoutez ce répertoire aux variables d'PATHenvironnement afin que les exécutables de votre script puissent les exécuter sans avoir à spécifier le chemin du répertoire à chaque fois. La liste des variables d'une définition d'environnement ne permet pas de modifier la variable. Pour ce faire, exécutez plutôt un script. Une fois que le script a configuré et modifié lePATH, il exporte la variable vers le runtime OpenJD à l'aide de la commande. echo "openjd_env: PATH=$PATH"

Conditions préalables

Effectuez les étapes suivantes pour exécuter l'exemple de bundle de tâches avec des variables d'environnement issues du référentiel github d'exemples de Deadline Cloud.

  1. Si vous ne possédez pas de parc Deadline Cloud avec une file d'attente et un parc Linux associé, suivez l'expérience d'intégration guidée dans la console Deadline Cloud pour en créer une avec les paramètres par défaut.

  2. Si vous ne disposez pas de l'interface de ligne de commande Deadline Cloud et du moniteur Deadline Cloud sur votre poste de travail, suivez les étapes de la section Configurer les soumissionnaires de Deadline Cloud dans le guide de l'utilisateur.

  3. Utilisez-le git pour cloner le GitHub référentiel d'échantillons Deadline Cloud.

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git Cloning into 'deadline-cloud-samples'... ... cd deadline-cloud-samples/job_bundles

Exécutez l'exemple de chemin

  1. Utilisez l'interface de ligne de commande Deadline Cloud pour soumettre l'job_env_with_new_commandéchantillon.

    $ deadline bundle submit job_env_with_new_command Submitting to Queue: MySampleQueue ...
  2. Dans le moniteur Deadline Cloud, vous verrez la nouvelle tâche et pourrez suivre sa progression. Une fois que la Linux flotte associée à la file d'attente dispose d'un travailleur disponible pour exécuter la tâche, celle-ci se termine en quelques secondes. Sélectionnez la tâche, puis choisissez l'option Afficher les journaux dans le menu supérieur droit du panneau des tâches.

    Sur la droite se trouvent deux actions de session, Lancer RandomSleepCommand et Exécuter la tâche. Le visualiseur de journaux situé au centre de la fenêtre correspond à l'action de session sélectionnée sur la droite.

Comparez les actions de session avec leurs définitions

Dans cette section, vous utilisez le moniteur Deadline Cloud pour comparer les actions de session avec l'endroit où elles sont définies dans le modèle de tâche. Il fait suite à la section précédente.

Ouvrez le fichier job_env_with_new_command/template .yaml dans un éditeur de texte. Comparez les actions de session à l'endroit où elles sont définies dans le modèle de tâche.

  1. Sélectionnez l'action Lancer la RandomSleepCommand session dans le moniteur Deadline Cloud. Vous verrez la sortie du journal comme suit.

    2024/07/16 17:25:32-07:00 2024/07/16 17:25:32-07:00 ============================================== 2024/07/16 17:25:32-07:00 --------- Entering Environment: RandomSleepCommand 2024/07/16 17:25:32-07:00 ============================================== 2024/07/16 17:25:32-07:00 ---------------------------------------------- 2024/07/16 17:25:32-07:00 Phase: Setup 2024/07/16 17:25:32-07:00 ---------------------------------------------- 2024/07/16 17:25:32-07:00 Writing embedded files for Environment to disk. 2024/07/16 17:25:32-07:00 Mapping: Env.File.Enter -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmpbt8j_c3f 2024/07/16 17:25:32-07:00 Mapping: Env.File.SleepScript -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmperastlp4 2024/07/16 17:25:32-07:00 Wrote: Enter -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmpbt8j_c3f 2024/07/16 17:25:32-07:00 Wrote: SleepScript -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmperastlp4 2024/07/16 17:25:32-07:00 ---------------------------------------------- 2024/07/16 17:25:32-07:00 Phase: Running action 2024/07/16 17:25:32-07:00 ---------------------------------------------- 2024/07/16 17:25:32-07:00 Running command sudo -u job-user -i setsid -w /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/tmpbwrquq5u.sh 2024/07/16 17:25:32-07:00 Command started as pid: 2205 2024/07/16 17:25:32-07:00 Output: 2024/07/16 17:25:33-07:00 openjd_env: PATH=/sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/bin:/opt/conda/condabin:/home/job-user/.local/bin:/home/job-user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin No newer logs at this moment.

    Les lignes suivantes du modèle de tâche spécifiaient cette action.

    jobEnvironments: - name: RandomSleepCommand description: Adds a command 'random-sleep' to the environment. script: actions: onEnter: command: bash args: - "{{Env.File.Enter}}" embeddedFiles: - name: Enter type: TEXT data: | #!/bin/env bash set -euo pipefail # Make a bin directory inside the session's working directory for providing new commands mkdir -p '{{Session.WorkingDirectory}}/bin' # If this bin directory is not already in the PATH, then add it if ! [[ ":$PATH:" == *':{{Session.WorkingDirectory}}/bin:'* ]]; then export "PATH={{Session.WorkingDirectory}}/bin:$PATH" # This message to Open Job Description exports the new PATH value to the environment echo "openjd_env: PATH=$PATH" fi # Copy the SleepScript embedded file into the bin directory cp '{{Env.File.SleepScript}}' '{{Session.WorkingDirectory}}/bin/random-sleep' chmod u+x '{{Session.WorkingDirectory}}/bin/random-sleep' - name: SleepScript type: TEXT runnable: true data: | ...
  2. Sélectionnez l'action Lancer la StepEnv session dans le moniteur Deadline Cloud. La sortie du journal s'affiche comme suit.

    2024/07/16 17:25:33-07:00 2024/07/16 17:25:33-07:00 ============================================== 2024/07/16 17:25:33-07:00 --------- Running Task 2024/07/16 17:25:33-07:00 ============================================== 2024/07/16 17:25:33-07:00 ---------------------------------------------- 2024/07/16 17:25:33-07:00 Phase: Setup 2024/07/16 17:25:33-07:00 ---------------------------------------------- 2024/07/16 17:25:33-07:00 Writing embedded files for Task to disk. 2024/07/16 17:25:33-07:00 Mapping: Task.File.Run -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmpdrwuehjf 2024/07/16 17:25:33-07:00 Wrote: Run -> /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/embedded_filesf3tq_1os/tmpdrwuehjf 2024/07/16 17:25:33-07:00 ---------------------------------------------- 2024/07/16 17:25:33-07:00 Phase: Running action 2024/07/16 17:25:33-07:00 ---------------------------------------------- 2024/07/16 17:25:33-07:00 Running command sudo -u job-user -i setsid -w /sessions/session-ab132a51b9b54d5da22cbe839dd946baaw1c8hk5/tmpz81iaqfw.sh 2024/07/16 17:25:33-07:00 Command started as pid: 2256 2024/07/16 17:25:33-07:00 Output: 2024/07/16 17:25:34-07:00 + random-sleep 12.5 27.5 2024/07/16 17:26:00-07:00 Sleeping for duration 26.90 2024/07/16 17:26:00-07:00 ---------------------------------------------- 2024/07/16 17:26:00-07:00 Uploading output files to Job Attachments 2024/07/16 17:26:00-07:00 ----------------------------------------------
  3. Les lignes suivantes du modèle de tâche spécifiaient cette action.

    steps: - name: EnvWithCommand script: actions: onRun: command: bash args: - '{{Task.File.Run}}' embeddedFiles: - name: Run type: TEXT data: | set -xeuo pipefail # Run the script installed into PATH by the job environment random-sleep 12.5 27.5 hostRequirements: attributes: - name: attr.worker.os.family anyOf: - linux