View a markdown version of this page

Imposta le variabili di ambiente in un ambiente di coda - Deadline Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Imposta le variabili di ambiente in un ambiente di coda

Molte applicazioni e framework utilizzano variabili di ambiente per controllare le impostazioni delle funzionalità, i livelli di registrazione e la configurazione dello schermo. È possibile utilizzare gli ambienti Open Job Description (OpenJD) per impostare le variabili di ambiente che ogni comando di task all'interno del relativo ambito eredita.

Ambito della variabile di ambiente

AWS Deadline Cloud applica le variabili di ambiente dagli ambienti di coda collegati a una coda. All'interno di un modello di lavoro, puoi anche definire le variabili di ambiente a livello di processo e fase utilizzando gli ambienti OpenJD. Le variabili definite in un ambito più ristretto sostituiscono le variabili con lo stesso nome in un ambito più ampio.

  • Ambiente di coda: un modello da allegare a una coda in Deadline Cloud. Le variabili si applicano a tutti i lavori inviati alla coda. È possibile impostare variabili con una variables mappa per valori fissi o utilizzare script per valori dinamici.

  • Ambiente di lavoro: definito jobEnvironments in un modello di lavoro. Le variabili si applicano a tutte le fasi e le attività del lavoro. Una variabile a livello di processo sostituisce una variabile a livello di coda con lo stesso nome.

  • Ambiente a fasi: definito in un modello di lavoro. stepEnvironments Le variabili si applicano solo alle attività di quella fase. Una variabile a livello di fase sostituisce una variabile a livello di processo o di coda con lo stesso nome.

Impostazione delle variabili in un ambiente di coda

È possibile impostare le variabili di ambiente in un ambiente di coda utilizzando una variables mappa per valori fissi o utilizzando un'scriptonEnterazione per valori dinamici.

Il seguente modello di ambiente di coda utilizza una variables mappa su cui impostare la QT_QPA_PLATFORM variabileoffscreen, che consente alle applicazioni che utilizzano Qt Framework di funzionare su host di lavoro senza un display interattivo.

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

Per valori dinamici, come la modifica PATH o l'attivazione di ambienti virtuali, usa uno script che stampa le righe nel formato openjd_env: VAR=value su stdout. Il openjd_env: prefisso è obbligatorio. L'utilizzo di echoexport, o altri meccanismi di shell senza il prefisso non propaga le variabili ai job e alle attività.

Il seguente modello di ambiente di coda imposta la QT_QPA_PLATFORM variabile utilizzando uno 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"

Per collegare un ambiente di coda alla tua coda, usa la console Deadline Cloud o il. AWS CLI Per ulteriori informazioni, consulta Creare un ambiente di coda nella Guida per l'utente di AWS Deadline Cloud. Il AWS CLI comando seguente crea un ambiente di coda da un file modello.

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

Per esempi più complessi, come la creazione e l'attivazione di ambienti virtuali conda, consulta gli esempi di ambiente di coda di Deadline Cloud su. GitHub

Impostazione delle variabili in un modello di lavoro

In un modello di lavoro, aggiungi una variables mappa a una stepEnvironments voce jobEnvironments or. Ogni voce è una coppia chiave-valore in cui la chiave è il nome della variabile e il valore è il valore della variabile.

Il seguente modello di lavoro imposta la variabile di QT_QPA_PLATFORM ambiente suoffscreen, che consente alle applicazioni che utilizzano Qt Framework di funzionare su host di lavoro senza un display interattivo.

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

È possibile impostare più variabili in un'unica definizione di ambiente.

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

È possibile fare riferimento ai parametri del lavoro in valori variabili utilizzando la {{Param.ParameterName}} sintassi.

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

Per sovrascrivere una variabile a livello di job per un passaggio specifico, definite una stepEnvironments voce con lo stesso nome di variabile. L'esempio seguente definisce JOB_PROJECT_ID a livello di processo il valoreproject-12, quindi sostituisce il valore a livello di fase con. step-project-12 Le attività della fase utilizzano il valore a livello di fase.

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

Prova: esegui l'esempio della variabile di ambiente

L'archivio di esempi di Deadline Cloud include un job bundle che dimostra l'impostazione e la visualizzazione delle variabili di ambiente. Il modello di lavoro di esempio definisce le variabili sia a livello di processo che a livello di fase, quindi esegue un'attività che stampa il risultato unito. Utilizzare la procedura seguente per eseguire il campione e controllare i risultati.

Prerequisiti

  1. Se non disponi di una farm Deadline Cloud con una coda e una flotta Linux associata, segui l'esperienza di onboarding guidata nella console Deadline Cloud per crearne una con le impostazioni predefinite.

  2. Se non disponi della CLI di Deadline Cloud AWS e del monitor Deadline Cloud sulla tua workstation, segui i passaggi in Configurare i mittenti di Deadline Cloud.

  3. Utilizzalo per clonare l'archivio di esempi git di Deadline Cloud. GitHub

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

Esecuzione dell'esempio

  1. Utilizza la CLI di Deadline Cloud per inviare job_env_vars il campione.

    deadline bundle submit job_env_vars
  2. Nel monitor Deadline Cloud, seleziona il nuovo lavoro per monitorarne l'avanzamento. Dopo che la Linux flotta associata alla coda ha un lavoratore disponibile, il lavoro viene completato in pochi secondi. Seleziona l'attività, quindi scegli Visualizza registri nel menu in alto a destra del pannello delle attività.

Confronto delle azioni della sessione con le relative definizioni

La visualizzazione del registro mostra tre azioni di sessione. Apri il file job_env_vars/template.yaml in un editor di testo per confrontare ogni azione con la relativa definizione nel modello di lavoro.

  1. Seleziona l'azione Avvia sessione JobEnv. L'output del registro mostra le variabili di ambiente a livello di processo impostate.

    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

    Le righe seguenti del modello di lavoro definiscono questo ambiente.

    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. Seleziona l'azione Avvia StepEnv sessione. L'output del registro mostra le variabili a livello di fase, incluse quelle sostituite. JOB_PROJECT_ID

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

    Le righe seguenti del modello di lavoro definiscono questo ambiente.

    stepEnvironments: - name: StepEnv variables: STEP_VERBOSITY: HIGH JOB_PROJECT_ID: step-project-12
  3. Seleziona l'azione Task run session. L'output del registro mostra le variabili di ambiente unite disponibili per l'attività. Si noti che JOB_PROJECT_ID utilizza il valore a livello di fase. step-project-12

    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