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éfinir des variables d'environnement dans un environnement de file d'attente
De nombreuses applications et frameworks utilisent des variables d'environnement pour contrôler les paramètres des fonctionnalités, les niveaux de journalisation et la configuration de l'affichage. Vous pouvez utiliser les environnements Open Job Description (OpenJD)
Portée de la variable d'environnement
AWS Deadline Cloud applique des variables d'environnement issues des environnements de files d'attente que vous associez à une file d'attente. Dans un modèle de tâche, vous pouvez également définir des variables d'environnement au niveau de la tâche et de l'étape à l'aide des environnements OpenJD.
-
Environnement de file d'attente : modèle que vous associez à une file d'attente dans Deadline Cloud. Les variables s'appliquent à toutes les tâches soumises à la file d'attente. Vous pouvez définir des variables à l'aide d'une
variablescarte pour les valeurs fixes ou utiliser des scripts pour les valeurs dynamiques. -
Environnement de travail : défini ci-dessous
jobEnvironmentsdans un modèle de poste. Les variables s'appliquent à toutes les étapes et à toutes les tâches du poste. Une variable au niveau de la tâche remplace une variable au niveau de la file d'attente portant le même nom. -
Environnement d'étapes : défini ci-dessous
stepEnvironmentsdans un modèle de tâche. Les variables s'appliquent uniquement aux tâches de cette étape. Une variable par étapes remplace une variable au niveau de la tâche ou de la file d'attente portant le même nom.
Définition de variables dans un environnement de file d'attente
Vous pouvez définir des variables d'environnement dans un environnement de file d'attente à l'aide d'une variables carte pour les valeurs fixes ou à l'scriptaide d'une onEnter action pour les valeurs dynamiques.
Le modèle d'environnement de file d'attente suivant utilise une variables carte pour définir la QT_QPA_PLATFORM variable suroffscreen, ce qui permet aux applications utilisant le Qt Framework de
specificationVersion: 'environment-2023-09'
environment:
name: QtOffscreen
variables:
QT_QPA_PLATFORM: offscreen
Pour les valeurs dynamiques, telles que la modification PATH ou l'activation d'environnements virtuels, utilisez un script qui imprime les lignes openjd_env: au format stdout. Le VAR=valueopenjd_env: préfixe est obligatoire. L'utilisation de echoexport, ou d'autres mécanismes shell sans préfixe ne propage pas les variables aux jobs et aux tâches.
Le modèle d'environnement de file d'attente suivant définit la QT_QPA_PLATFORM variable à l'aide d'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"
Pour associer un environnement de file d'attente à votre file d'attente, utilisez la console Deadline Cloud ou le AWS CLI. Pour plus d'informations, consultez la section Création d'un environnement de file d'attente dans le Guide de l'utilisateur de AWS Deadline Cloud. La AWS CLI commande suivante crée un environnement de file d'attente à partir d'un fichier modèle.
aws deadline create-queue-environment \ --farm-idFARM_ID\ --queue-idQUEUE_ID\ --priority 1 \ --template-type YAML \ --template file://my-queue-env.yaml
Pour des exemples plus complexes, tels que la création et l'activation d'environnements virtuels Conda, consultez les exemples d'environnement de file d'attente Deadline Cloud
Définition de variables dans un modèle de tâche
Dans un modèle de tâche, ajoutez une variables carte à une stepEnvironments entrée jobEnvironments ou. Chaque entrée est une paire clé-valeur où la clé est le nom de la variable et la valeur est la valeur de la variable.
Le modèle de tâche suivant définit la variable d'QT_QPA_PLATFORMenvironnement suroffscreen, ce qui permet aux applications utilisant le Qt Framework de
specificationVersion: 'jobtemplate-2023-09'
name: MyJob
jobEnvironments:
- name: JobEnv
variables:
QT_QPA_PLATFORM: offscreen
Vous pouvez définir plusieurs variables dans une seule définition d'environnement.
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
Vous pouvez référencer les paramètres de la tâche dans des valeurs variables à l'aide de la {{Param. syntaxe.ParameterName}}
jobEnvironments:
- name: JobEnv
variables:
JOB_EXAMPLE_PARAM: "{{Param.ExampleParam}}"
Pour remplacer une variable au niveau de la tâche pour une étape spécifique, définissez une stepEnvironments entrée portant le même nom de variable. L'exemple suivant définit JOB_PROJECT_ID au niveau de la tâche avec la valeurproject-12, puis remplace la valeur au niveau de l'étape parstep-project-12. Les tâches de l'étape utilisent la valeur au niveau de l'étape.
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
Essayez-le : Exécution de l'exemple de variable d'environnement
Le référentiel d'exemples de Deadline Cloud comprend un ensemble de tâches qui explique la définition et la visualisation des variables d'environnement
Conditions préalables
-
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. -
Si vous ne disposez pas de l'interface de ligne de commande Deadline Cloud et du moniteur AWS Deadline Cloud sur votre poste de travail, suivez les étapes décrites dans la section Configurer les soumissionnaires de Deadline Cloud.
-
Utilisez-le
gitpour cloner le GitHub référentiel d'échantillons Deadline Cloud. git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles
Exécution de l'exemple
-
Utilisez l'interface de ligne de commande Deadline Cloud pour soumettre l'
job_env_varséchantillon.deadline bundle submit job_env_vars -
Dans le moniteur Deadline Cloud, sélectionnez la nouvelle tâche pour suivre sa progression. Une fois qu'un travailleur est disponible pour la Linux flotte associée à la file d'attente, la tâche est terminée en quelques secondes. Sélectionnez la tâche, puis choisissez Afficher les journaux dans le menu en haut à droite du panneau des tâches.
Comparaison des actions de session avec leurs définitions
La vue du journal montre trois actions de session. Ouvrez le fichier job_env_vars/template .yaml
-
Sélectionnez l'action Lancer JobEnv la session. La sortie du journal indique les variables d'environnement définies au niveau de la tâche.
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=offscreenLes lignes suivantes du modèle de poste définissent cet environnement.
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 -
Sélectionnez l'action Lancer StepEnv la session. La sortie du journal affiche les variables au niveau des étapes, y compris celles qui ont été remplacées
JOB_PROJECT_ID.Setting: STEP_VERBOSITY=HIGH Setting: JOB_PROJECT_ID=step-project-12Les lignes suivantes du modèle de poste définissent cet environnement.
stepEnvironments: - name: StepEnv variables: STEP_VERBOSITY: HIGH JOB_PROJECT_ID: step-project-12 -
Sélectionnez l'action Task run session. La sortie du journal indique les variables d'environnement fusionnées disponibles pour la tâche. Notez qu'elle
JOB_PROJECT_IDutilise la valeurstep-project-12par étapes.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