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 file d'attente que vous attachez à 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 attachez à 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 travail. Les variables s'appliquent à toutes les étapes et tâches de la tâche. Une variable au niveau de la tâche remplace une variable au niveau de la file d'attente portant le même nom. -
Environnement des é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 de niveau étape remplace une variable de niveau tâche ou de 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
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 des lignes openjd_env: au format standard. Le VAR=valueopenjd_env: préfixe est obligatoire. L'utilisation de echoexport, ou d'autres mécanismes shell sans le préfixe ne propage pas les variables vers les jobs et les 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
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 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 de niveau 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 du 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 inclut un ensemble de tâches qui explique la définition et l'affichage des variables d'environnement
Conditions préalables
-
Si vous ne possédez pas de ferme 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 la CLI Deadline Cloud et du moniteur AWS Deadline Cloud sur votre poste de travail, suivez les étapes décrites dans Configurer les émetteurs Deadline Cloud.
-
gitÀ utiliser pour cloner le GitHubréférentiel d'échantillons de 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 la CLI de Deadline Cloud pour envoyer 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 dans le Linux parc associé à la file d'attente, la tâche se termine en quelques secondes. Sélectionnez la tâche, puis choisissez Afficher les journaux dans le menu supérieur droit 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 une JobEnv session. La sortie du journal indique les variables d'environnement définies au niveau du travail.
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 tâche 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 une StepEnv session. La sortie du journal indique les variables au niveau de l'étape, y compris les variables remplacées
JOB_PROJECT_ID.Setting: STEP_VERBOSITY=HIGH Setting: JOB_PROJECT_ID=step-project-12Les lignes suivantes du modèle de tâche 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 que cela
JOB_PROJECT_IDutilise la valeurstep-project-12au niveau de l'étape.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