View a markdown version of this page

Establezca las variables de entorno en un entorno de colas - Nube de plazos

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 colas

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 Open Job Description (OpenJD) para establecer variables de entorno que herede cada comando de tarea dentro de su ámbito.

Ámbito de la variable de entorno

AWS Deadline Cloud aplica variables de entorno de los entornos de colas 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 de OpenJD. Las variables definidas en un ámbito más limitado anulan las variables con el mismo nombre de un ámbito más amplio.

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

  • Entorno laboral: 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 escalonado: 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 trabajo o de cola con el mismo nombre.

Establecer variables en un entorno de colas

Puede configurar las variables de entorno en un entorno de colas mediante un variables mapa para valores fijos o mediante una script 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 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 valores dinámicos, como modificar PATH o activar entornos virtuales, utilice un script que imprima las líneas en formato openjd_env: VAR=value stdout. El openjd_env: prefijo es obligatorio. El uso de echoexport, u otros mecanismos de shell sin el prefijo no propaga las variables a los trabajos y tareas.

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 del entorno de colas de Deadline Cloud en. GitHub

Establecer 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 en el que 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 los hosts de los trabajadores sin una pantalla interactiva.

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

Puede establecer múltiples 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 valores 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 en el nivel de trabajo con el valor yproject-12, a continuación, se reemplaza el valor en el nivel de paso con. step-project-12 Las tareas del paso utilizan el valor del 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: ejecute el ejemplo de la variable de entorno

El repositorio de muestras de Deadline Cloud incluye un paquete de trabajos que muestra la configuración y visualización de las variables de entorno. La plantilla de trabajo de muestra 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 siguiente procedimiento 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 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 tiene la CLI de Deadline Cloud ni el monitor de AWS Deadline Cloud en su estación de trabajo, siga los pasos de Configurar los remitentes de Deadline Cloud.

  3. Úselo git 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, selecciona 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. Seleccione la tarea y, a continuación, elija Ver registros en el menú superior derecho del panel de tareas.

Comparar las acciones de la sesión con sus definiciones

La vista de registro muestra tres acciones de la sesión. Abra 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. El resultado del registro muestra las variables a nivel de paso, 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 Tarea ejecutar sesión. 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