View a markdown version of this page

Establezca las variables de entorno en un entorno de cola - Deadline Cloud

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 las variables de entorno en un entorno de cola

Muchas aplicaciones y marcos utilizan variables de entorno para controlar la configuración de las funciones, los niveles de registro y la configuración de la pantalla. Puede usar los entornos de Open Job Description (OpenJD) para establecer las variables de entorno que hereden todos los comandos de tareas de su ámbito.

Alcance de la variable de entorno

AWS Deadline Cloud aplica las variables de entorno de los entornos de cola que se adjuntan a una cola. Dentro de una plantilla de trabajo, también puede definir variables de entorno a nivel de trabajo y paso mediante entornos OpenJD. Las variables definidas en un ámbito más estrecho sustituyen a las variables con el mismo nombre en un ámbito más amplio.

  • Entorno de cola: plantilla que se adjunta a una cola en Deadline Cloud. Las variables se aplican a todos los trabajos enviados a la cola. Puede establecer variables con un variables mapa para valores fijos o usar scripts para valores dinámicos.

  • Entorno de trabajo: se define jobEnvironments en una plantilla de trabajo. Las variables se aplican a todos los pasos y tareas del trabajo. Una variable de nivel de trabajo anula una variable de nivel de cola con el mismo nombre.

  • Entorno de pasos: se define en una plantilla de trabajo. stepEnvironments Las variables se aplican solo a las tareas de ese paso. Una variable de nivel de paso anula una variable de nivel de tarea o de cola con el mismo nombre.

Establecer variables en un entorno de cola

Puede establecer variables de entorno en un entorno de cola mediante un variables mapa para valores fijos o script con una onEnter acción para valores dinámicos.

La siguiente plantilla de entorno de colas utiliza un variables mapa para establecer la QT_QPA_PLATFORM variableoffscreen, lo que permite que las aplicaciones que utilizan el Qt Framework se ejecuten en hosts de trabajo sin una pantalla interactiva.

specificationVersion: 'environment-2023-09' environment: name: QtOffscreen variables: QT_QPA_PLATFORM: offscreen

Para los valores dinámicos, como la modificación PATH o la activación de entornos virtuales, utilice un script que imprima líneas en el formato openjd_env: VAR=value estándar. El openjd_env: prefijo es obligatorio. El uso echo de otros mecanismos de shell sin el prefijo no propaga las variables a los trabajos y tareas. export

La siguiente plantilla de entorno de colas establece la QT_QPA_PLATFORM variable mediante un script.

specificationVersion: 'environment-2023-09' environment: name: QtOffscreen script: actions: onEnter: command: bash args: - "{{Env.File.Enter}}" embeddedFiles: - name: Enter type: TEXT data: | #!/bin/env bash set -euo pipefail echo "openjd_env: QT_QPA_PLATFORM=offscreen"

Para adjuntar un entorno de colas a su cola, utilice la consola de Deadline Cloud o la. AWS CLI Para obtener más información, consulte Crear un entorno de colas en la Guía del usuario de AWS Deadline Cloud. El siguiente AWS CLI comando crea un entorno de colas a partir de un archivo de plantilla.

aws deadline create-queue-environment \ --farm-id FARM_ID \ --queue-id QUEUE_ID \ --priority 1 \ --template-type YAML \ --template file://my-queue-env.yaml

Para ver ejemplos más complejos, como la creación y activación de entornos virtuales de conda, consulte los ejemplos de entornos de colas de Deadline Cloud en. GitHub

Configurar variables en una plantilla de trabajo

En una plantilla de trabajo, añada un variables mapa a una stepEnvironments entrada jobEnvironments o. Cada entrada es un par clave-valor donde la clave es el nombre de la variable y el valor es el valor de la variable.

La siguiente plantilla de trabajo establece la variable de QT_QPA_PLATFORM entorno enoffscreen, lo que permite que las aplicaciones que utilizan el Qt Framework se ejecuten en hosts de trabajo sin una pantalla interactiva.

specificationVersion: 'jobtemplate-2023-09' name: MyJob jobEnvironments: - name: JobEnv variables: QT_QPA_PLATFORM: offscreen

Puede establecer varias variables en una sola definición de entorno.

jobEnvironments: - name: JobEnv variables: JOB_VERBOSITY: MEDIUM JOB_PROJECT_ID: my-project-id JOB_ENDPOINT_URL: https://my-host-name/my/path QT_QPA_PLATFORM: offscreen

Puede hacer referencia a los parámetros del trabajo en los valores de las variables mediante la {{Param.ParameterName}} sintaxis.

jobEnvironments: - name: JobEnv variables: JOB_EXAMPLE_PARAM: "{{Param.ExampleParam}}"

Para anular una variable de nivel de trabajo para un paso específico, defina una stepEnvironments entrada con el mismo nombre de variable. En el siguiente ejemplo, se define JOB_PROJECT_ID a nivel de trabajo con el valor yproject-12, a continuación, se anula el valor a nivel de paso con. step-project-12 Las tareas del paso utilizan el valor a nivel de paso.

specificationVersion: 'jobtemplate-2023-09' name: MyJob jobEnvironments: - name: JobEnv variables: JOB_PROJECT_ID: project-12 steps: - name: MyStep stepEnvironments: - name: StepEnv variables: JOB_PROJECT_ID: step-project-12

Pruébelo: ejecutar el ejemplo de la variable de entorno

El repositorio de muestras de Deadline Cloud incluye un paquete de trabajos que muestra cómo configurar y ver las variables de entorno. La plantilla de trabajo de ejemplo define las variables tanto a nivel de trabajo como de paso y, a continuación, ejecuta una tarea que imprime el resultado combinado. Utilice el procedimiento siguiente para ejecutar la muestra e inspeccionar los resultados.

Requisitos previos

  1. Si no tiene una granja de Deadline Cloud con una cola y una flota de Linux asociada, siga la experiencia de incorporación guiada en la consola de Deadline Cloud para crear una con la configuración predeterminada.

  2. Si no tienes la CLI de Deadline Cloud ni el monitor de AWS Deadline Cloud en tu estación de trabajo, sigue los pasos que se indican en Configurar los remitentes de Deadline Cloud.

  3. gitUtilícelo para clonar el repositorio de muestras GitHub de Deadline Cloud.

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

Ejecución del ejemplo

  1. Utilice la CLI de Deadline Cloud para enviar la job_env_vars muestra.

    deadline bundle submit job_env_vars
  2. En el monitor de Deadline Cloud, seleccione el nuevo trabajo para supervisar su progreso. Cuando la Linux flota asociada a la cola tenga un trabajador disponible, el trabajo se completará en unos segundos. Selecciona la tarea y, a continuación, elige Ver registros en el menú superior derecho del panel de tareas.

Comparación de las acciones de la sesión con sus definiciones

La vista de registro muestra tres acciones de sesión. Abre el archivo job_env_vars/template .yaml en un editor de texto para comparar cada acción con su definición en la plantilla de trabajo.

  1. Seleccione la acción Iniciar JobEnv sesión. El resultado del registro muestra las variables de entorno a nivel de trabajo que se están configurando.

    Setting: JOB_VERBOSITY=MEDIUM Setting: JOB_EXAMPLE_PARAM=An example parameter value Setting: JOB_PROJECT_ID=project-12 Setting: JOB_ENDPOINT_URL=https://internal-host-name/some/path Setting: QT_QPA_PLATFORM=offscreen

    Las siguientes líneas de la plantilla de trabajo definen este entorno.

    jobEnvironments: - name: JobEnv variables: JOB_VERBOSITY: MEDIUM JOB_EXAMPLE_PARAM: "{{Param.ExampleParam}}" JOB_PROJECT_ID: project-12 JOB_ENDPOINT_URL: https://internal-host-name/some/path QT_QPA_PLATFORM: offscreen
  2. Seleccione la acción Iniciar StepEnv sesión. La salida del registro muestra las variables escalonadas, incluidas las anuladasJOB_PROJECT_ID.

    Setting: STEP_VERBOSITY=HIGH Setting: JOB_PROJECT_ID=step-project-12

    Las siguientes líneas de la plantilla de trabajo definen este entorno.

    stepEnvironments: - name: StepEnv variables: STEP_VERBOSITY: HIGH JOB_PROJECT_ID: step-project-12
  3. Seleccione la acción Ejecutar sesión de tarea. El resultado del registro muestra las variables de entorno combinadas disponibles para la tarea. Observe que JOB_PROJECT_ID utiliza el valor step-project-12 de nivel escalonado.

    Environment variables starting with JOB_*: JOB_ENDPOINT_URL=https://internal-host-name/some/path JOB_EXAMPLE_PARAM='An example parameter value' JOB_PROJECT_ID=step-project-12 JOB_VERBOSITY=MEDIUM Environment variables starting with STEP_*: STEP_VERBOSITY=HIGH