

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
<a name="set-environment-variables"></a>

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)](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment) per impostare le variabili di ambiente che ogni comando di task all'interno del relativo ambito eredita.

## Ambito della variabile di ambiente
<a name="set-env-vars-scope"></a>

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.](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment) 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
<a name="set-env-vars-queue-env"></a>

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

Il seguente modello di ambiente di coda utilizza una `variables` mappa su cui impostare la `QT_QPA_PLATFORM` variabile`offscreen`, che consente alle applicazioni che utilizzano [Qt Framework](https://www.qt.io/product/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 `echo``export`, 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](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html) 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](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/queue_environments). GitHub

## Impostazione delle variabili in un modello di lavoro
<a name="set-env-vars-job-template"></a>

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 su`offscreen`, che consente alle applicazioni che utilizzano [Qt Framework](https://www.qt.io/product/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 valore`project-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
<a name="set-env-vars-example"></a>

L'archivio di esempi di Deadline Cloud include un [job bundle che dimostra l'impostazione e](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_env_vars/template.yaml) 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
<a name="set-prerequisites"></a>

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](https://console.aws.amazon.com/deadlinecloud/home) per crearne una con le impostazioni predefinite.

1. Se non disponi della CLI di Deadline Cloud AWS e del monitor Deadline Cloud sulla tua workstation, segui i passaggi [in Configurare](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html) i mittenti di Deadline Cloud.

1. [Utilizzalo per clonare l'archivio di esempi `git` di Deadline Cloud. GitHub](https://github.com/aws-deadline/deadline-cloud-samples)

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

### Esecuzione dell'esempio
<a name="set-run-example"></a>

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

   ```
   deadline bundle submit job_env_vars
   ```

1. 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
<a name="set-compare-actions"></a>

La visualizzazione del registro mostra tre azioni di sessione. Apri il file [job\_env\_vars/template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/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
   ```

1. 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
   ```

1. 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
   ```