

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatur variabel lingkungan dalam lingkungan antrian
<a name="set-environment-variables"></a>

Banyak aplikasi dan kerangka kerja menggunakan variabel lingkungan untuk mengontrol pengaturan fitur, tingkat logging, dan konfigurasi tampilan. Anda dapat menggunakan [lingkungan Open Job Description (OpenJD)](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment) untuk mengatur variabel lingkungan yang diwarisi oleh setiap perintah tugas dalam cakupannya.

## Lingkup variabel lingkungan
<a name="set-env-vars-scope"></a>

AWS Deadline Cloud menerapkan variabel lingkungan dari lingkungan antrian yang Anda lampirkan ke antrian. Dalam template pekerjaan, Anda juga dapat menentukan variabel lingkungan di tingkat pekerjaan dan langkah menggunakan lingkungan [OpenJD](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment). Variabel yang didefinisikan pada lingkup yang lebih sempit mengesampingkan variabel dengan nama yang sama dari lingkup yang lebih luas.
+ **Lingkungan antrian** — Template yang Anda lampirkan ke antrian di Deadline Cloud. Variabel berlaku untuk semua pekerjaan yang dikirimkan ke antrian. Anda dapat mengatur variabel dengan `variables` peta untuk nilai tetap, atau menggunakan skrip untuk nilai dinamis.
+ **Job environment** — Didefinisikan `jobEnvironments` di bawah dalam template pekerjaan. Variabel berlaku untuk semua langkah dan tugas dalam pekerjaan. Variabel tingkat pekerjaan mengesampingkan variabel tingkat antrian dengan nama yang sama.
+ **Lingkungan langkah** - Didefinisikan `stepEnvironments` di bawah dalam template pekerjaan. Variabel hanya berlaku untuk tugas dalam langkah itu. Variabel tingkat langkah mengesampingkan variabel tingkat pekerjaan atau tingkat antrian dengan nama yang sama.

## Mengatur variabel dalam lingkungan antrian
<a name="set-env-vars-queue-env"></a>

Anda dapat mengatur variabel lingkungan dalam lingkungan antrian menggunakan `variables` peta untuk nilai tetap, atau menggunakan `script` dengan `onEnter` tindakan untuk nilai dinamis.

Template lingkungan antrian berikut menggunakan `variables` peta untuk mengatur `QT_QPA_PLATFORM` variabel`offscreen`, yang memungkinkan aplikasi yang menggunakan [Kerangka Qt](https://www.qt.io/product/framework) untuk berjalan pada host pekerja tanpa tampilan interaktif.

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

Untuk nilai dinamis, seperti memodifikasi `PATH` atau mengaktifkan lingkungan virtual, gunakan skrip yang mencetak garis dalam format `openjd_env: {{VAR}}={{value}}` ke stdout. `openjd_env:`Awalan diperlukan. Menggunakan`echo`,`export`, atau mekanisme shell lainnya tanpa awalan tidak menyebarkan variabel ke pekerjaan dan tugas.

Template lingkungan antrian berikut menetapkan `QT_QPA_PLATFORM` variabel menggunakan 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"
```

Untuk melampirkan lingkungan antrian ke antrian Anda, gunakan konsol Deadline Cloud atau. AWS CLI Untuk informasi selengkapnya, lihat [Membuat lingkungan antrian](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html) di Panduan Pengguna Cloud AWS Batas Waktu. AWS CLI Perintah berikut menciptakan lingkungan antrian dari file template.

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

Untuk contoh yang lebih kompleks, seperti membuat dan mengaktifkan lingkungan virtual conda, lihat contoh lingkungan [antrian Deadline Cloud](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/queue_environments). GitHub

## Mengatur variabel dalam template pekerjaan
<a name="set-env-vars-job-template"></a>

Dalam template pekerjaan, tambahkan `variables` peta ke `stepEnvironments` entri `jobEnvironments` atau. Setiap entri adalah pasangan kunci-nilai di mana kuncinya adalah nama variabel dan nilainya adalah nilai variabel.

Template pekerjaan berikut menetapkan variabel `QT_QPA_PLATFORM` lingkungan ke`offscreen`, yang memungkinkan aplikasi yang menggunakan [Qt Framework](https://www.qt.io/product/framework) untuk berjalan pada host pekerja tanpa tampilan interaktif.

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

Anda dapat mengatur beberapa variabel dalam satu definisi lingkungan.

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

Anda dapat mereferensikan parameter pekerjaan dalam nilai variabel dengan menggunakan `{{Param.{{ParameterName}}}}` sintaks.

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

Untuk mengganti variabel tingkat pekerjaan untuk langkah tertentu, tentukan `stepEnvironments` entri dengan nama variabel yang sama. Contoh berikut mendefinisikan `JOB_PROJECT_ID` pada tingkat pekerjaan dengan nilai`project-12`, dan kemudian mengganti nilai pada tingkat langkah dengan. `step-project-12` Tugas dalam langkah menggunakan nilai tingkat langkah.

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

## Cobalah: Menjalankan sampel variabel lingkungan
<a name="set-env-vars-example"></a>

Repositori sampel Deadline Cloud menyertakan [bundel pekerjaan yang menunjukkan pengaturan dan](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_env_vars/template.yaml) melihat variabel lingkungan. Template pekerjaan sampel mendefinisikan variabel pada tingkat pekerjaan dan langkah, kemudian menjalankan tugas yang mencetak hasil gabungan. Gunakan prosedur berikut untuk menjalankan sampel dan memeriksa hasilnya.

### Prasyarat
<a name="set-prerequisites"></a>

1. Jika Anda tidak memiliki peternakan Deadline Cloud dengan antrian dan armada Linux terkait, ikuti pengalaman orientasi terpandu di [konsol Deadline Cloud](https://console.aws.amazon.com/deadlinecloud/home) untuk membuatnya dengan pengaturan default.

1. Jika Anda tidak memiliki monitor Deadline Cloud CLI AWS dan Deadline Cloud di workstation Anda, ikuti langkah-langkah [di Mengatur](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/submitter.html) pengirim Deadline Cloud.

1. Gunakan `git` untuk mengkloning repositori [sampel GitHub Deadline Cloud](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
   ```

### Menjalankan sampel
<a name="set-run-example"></a>

1. Gunakan Deadline Cloud CLI untuk mengirimkan `job_env_vars` sampel.

   ```
   deadline bundle submit job_env_vars
   ```

1. Di monitor Deadline Cloud, pilih pekerjaan baru untuk memantau kemajuannya. Setelah Linux armada yang terkait dengan antrian memiliki pekerja yang tersedia, pekerjaan selesai dalam beberapa detik. Pilih tugas, lalu pilih **Lihat log** di menu kanan atas panel tugas.

### Membandingkan tindakan sesi dengan definisinya
<a name="set-compare-actions"></a>

Tampilan log menunjukkan tiga tindakan sesi. Buka [job\_env\_vars/templatefile.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/job_env_vars/template.yaml) di editor teks untuk membandingkan setiap tindakan dengan definisinya di template pekerjaan.

1. Pilih tindakan **Peluncuran JobEnv** sesi. Output log menunjukkan variabel lingkungan tingkat pekerjaan yang disetel.

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

   Baris berikut dari template pekerjaan menentukan lingkungan ini.

   ```
   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. Pilih tindakan **Peluncuran StepEnv** sesi. Output log menunjukkan variabel tingkat langkah, termasuk yang diganti`JOB_PROJECT_ID`.

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

   Baris berikut dari template pekerjaan menentukan lingkungan ini.

   ```
   stepEnvironments:
   - name: StepEnv
     variables:
       STEP_VERBOSITY: HIGH
       JOB_PROJECT_ID: step-project-12
   ```

1. Pilih tindakan sesi **Task run**. Output log menunjukkan variabel lingkungan gabungan yang tersedia untuk tugas. Perhatikan bahwa `JOB_PROJECT_ID` menggunakan nilai `step-project-12` tingkat langkah.

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