View a markdown version of this page

Mengatur variabel lingkungan dalam lingkungan antrian - Awan Batas Waktu

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

Banyak aplikasi dan kerangka kerja menggunakan variabel lingkungan untuk mengontrol pengaturan fitur, level logging, dan konfigurasi tampilan. Anda dapat menggunakan lingkungan Open Job Description (OpenJD) untuk mengatur variabel lingkungan yang diwarisi oleh setiap perintah tugas dalam lingkupnya.

Lingkup variabel lingkungan

AWS Deadline Cloud menerapkan variabel lingkungan dari lingkungan antrian yang Anda lampirkan ke antrian. Dalam template pekerjaan, Anda juga dapat menentukan variabel lingkungan pada tingkat pekerjaan dan langkah menggunakan lingkungan https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment OpenJD. Variabel yang didefinisikan pada cakupan yang lebih sempit menggantikan 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.

  • Lingkungan pekerjaan - Ditetapkan jobEnvironments di bawah dalam template pekerjaan. Variabel berlaku untuk semua langkah dan tugas dalam pekerjaan. Variabel tingkat pekerjaan menggantikan variabel tingkat antrian dengan nama yang sama.

  • Lingkungan langkah - Ditetapkan stepEnvironments di bawah dalam template pekerjaan. Variabel hanya berlaku untuk tugas dalam langkah itu. Variabel tingkat langkah menggantikan variabel tingkat pekerjaan atau tingkat antrian dengan nama yang sama.

Mengatur variabel dalam lingkungan antrian

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 variabeloffscreen, yang memungkinkan aplikasi yang menggunakan Qt 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 baris dalam format openjd_env: VAR=value untuk stdout. A openjd_env: walan diperlukan. Menggunakanecho,export, atau mekanisme shell lainnya tanpa awalan tidak menyebarkan variabel ke pekerjaan dan tugas.

Template lingkungan antrian berikut menetapkan QT_QPA_PLATFORM variabel menggunakan skrip.

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 di Panduan Pengguna Dead AWS line Cloud. Per AWS CLI intah berikut membuat 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 Dead line Cloud pada GitHub.

Mengatur variabel dalam template pekerjaan

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

Template pekerjaan berikut menetapkan variabel QT_QPA_PLATFORM lingkungan keoffscreen, yang memungkinkan aplikasi yang menggunakan Qt 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 definisi lingkungan tunggal.

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 sin {{Param.ParameterName}} taks.

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 nilaiproject-12, dan kemudian mengganti nilai pada tingkat langkah denganstep-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

Repositori sampel Deadline Cloud menyer takan bundel pekerjaan yang menunjukkan pengaturan dan tampilan 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

  1. Jika Anda tidak memiliki farm Deadline Cloud dengan antrian dan armada Linux terkait, ikuti pengalaman orientasi terpandu di konsol Deadline Cloud untuk membuatnya dengan pengaturan default.

  2. Jika Anda tidak memiliki monitor Deadline Cloud CLI dan Dead AWS line Cloud di workstation Anda, ikuti langkah-langkah di Menyiapkan pengi rim Deadline Cloud.

  3. Gunakan git untuk mengkloning GitHub repositori sampel Dead line Cloud.

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

Menjalankan sampel

  1. Gunakan Deadline Cloud CLI untuk mengirimkan job_env_vars sampel.

    deadline bundle submit job_env_vars
  2. 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 definisi mereka

Tampilan log menunjukkan tiga tindakan sesi. Buka berkas job_env_vars/template .yaml di editor teks untuk membandingkan setiap tindakan dengan definisinya di template pekerjaan.

  1. Pilih tindakan Luncur JobEnv kan sesi. Output log menunjukkan variabel lingkungan tingkat pekerjaan yang sedang diatur.

    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 mendefinisikan 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
  2. Pilih tindakan Luncur StepEnv kan 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 mendefinisikan lingkungan ini.

    stepEnvironments: - name: StepEnv variables: STEP_VERBOSITY: HIGH JOB_PROJECT_ID: step-project-12
  3. Pilih tindakan sesi jalankan tugas. 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