

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Establezca la ruta en un entorno de cola
<a name="set-the-path"></a>

Utilice los entornos OpenJD para proporcionar nuevos comandos en un entorno. Primero, cree un directorio que contenga los archivos de script y, a continuación, añada ese directorio a las variables de `PATH` entorno para que los ejecutables del script puedan ejecutarlos sin necesidad de especificar la ruta del directorio cada vez. La lista de variables de una definición de entorno no proporciona una forma de modificar la variable, por lo que, en su lugar, se ejecuta un script. Una vez que el script configura las cosas y las modifica`PATH`, exporta la variable al motor de ejecución de OpenJD con el comando. `echo "openjd_env: PATH=$PATH"` 

## Requisitos previos
<a name="set-prerequisites"></a>

 Realice los siguientes pasos para ejecutar el [paquete de trabajos de muestra con variables de entorno](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_env_vars/template.yaml) del repositorio de muestras de Deadline Cloud en GitHub. 

1.  Si no tienes una granja de Deadline Cloud con una cola y una flota Linux asociada, sigue la experiencia de incorporación guiada en la [consola de Deadline Cloud](https://console.aws.amazon.com/deadlinecloud/home) para crear una con la configuración predeterminada. 

1.  Si no tiene la CLI de Deadline Cloud ni el monitor de Deadline Cloud en su estación de trabajo, siga los pasos de [Configurar los remitentes de Deadline Cloud](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html) de la guía del usuario. 

1.  Úselo `git` para clonar el repositorio de [muestras GitHub de Deadline Cloud](https://github.com/aws-deadline/deadline-cloud-samples). 

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

## Ejecute el ejemplo de ruta
<a name="path-run-sample"></a>

1.  Utilice la CLI de Deadline Cloud para enviar la `job_env_with_new_command` muestra.

   ```
    $ deadline bundle submit job_env_with_new_command
    Submitting to Queue: MySampleQueue
    ...
   ```

1.  En el monitor de Deadline Cloud, verá el nuevo trabajo y podrá supervisar su progreso. Una vez que la Linux flota asociada a la cola tenga un trabajador disponible para ejecutar la tarea, ésta se completará en unos segundos. Seleccione la tarea y, a continuación, elija la opción **Ver registros** en el menú superior derecho del panel de tareas. 

    A la derecha hay dos acciones de sesión: **Iniciar RandomSleepCommand** y **ejecutar una tarea**. El visor de registros en el centro de la ventana corresponde a la acción de sesión seleccionada a la derecha. 

## Compare las acciones de la sesión con sus definiciones
<a name="path-view-logs"></a>

En esta sección, utiliza el monitor de Deadline Cloud para comparar las acciones de la sesión con el lugar en el que están definidas en la plantilla de trabajo. Es la continuación de la sección anterior. 

Abre el archivo [job\_env\_with\_new\_command/template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_env_with_new_command/template.yaml) en un editor de texto. Compare las acciones de la sesión con el lugar donde están definidas en la plantilla de trabajo. 

1.  Seleccione la acción **Iniciar RandomSleepCommand** sesión en el monitor de Deadline Cloud. Verá el resultado del registro de la siguiente manera.

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

    Las siguientes líneas de la plantilla de trabajo especifican esta acción.

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

1.  Seleccione la acción **Iniciar StepEnv** sesión en el monitor de Deadline Cloud. El resultado del registro se muestra de la siguiente manera. 

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

1.  Las siguientes líneas de la plantilla de trabajo especificaban esta acción.

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