View a markdown version of this page

Mengatur variabel lingkungan dalam lingkungan antrian - Batas Waktu Cloud

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, tingkat logging, dan konfigurasi tampilan. Anda dapat menggunakan lingkungan Open Job Description (OpenJD) untuk mengatur variabel lingkungan yang diwarisi oleh setiap perintah tugas dalam cakupannya.

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 di tingkat pekerjaan dan langkah menggunakan lingkungan OpenJD. 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

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 Kerangka Qt 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. 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 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 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. 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 kuncinya 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 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 nilaiproject-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

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

  1. Jika Anda tidak memiliki peternakan 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 AWS dan Deadline Cloud di workstation Anda, ikuti langkah-langkah di Mengatur pengirim Deadline Cloud.

  3. Gunakan git untuk mengkloning repositori sampel GitHub Deadline 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 definisinya

Tampilan log menunjukkan tiga tindakan sesi. Buka job_env_vars/templatefile.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
  2. Pilih tindakan Peluncuran StepEnv sesi. Output log menunjukkan variabel tingkat langkah, termasuk yang digantiJOB_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
  3. 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