在佇列環境中設定環境變數 - 截止日期雲端

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在佇列環境中設定環境變數

Open Job Description (OpenJD) 環境可以設定其範圍內每個任務命令使用的環境變數。許多應用程式和架構會檢查環境變數,以控制功能設定、記錄層級等。

例如,Qt Framework 為許多桌面應用程式提供 GUI 功能。當您在沒有互動式顯示的工作者主機上執行這些應用程式時,您可能需要將環境變數設定為 ,QT_QPA_PLATFORMoffscreen以便工作者不會尋找顯示器。

在此範例中,您將使用 Deadline Cloud 範例目錄中的範例任務套件來設定和檢視任務的環境變數。

先決條件

執行下列步驟,從截止日期雲端範例 github 儲存庫使用環境變數執行範例任務套件

  1. 如果您沒有具有佇列和相關聯 Linux 機群的截止日期雲端陣列,請遵循截止日期雲端主控台中的引導式加入體驗,以使用預設設定建立。

  2. 如果您的工作站上沒有截止日期雲端 CLI 和截止日期雲端監視器,請遵循使用者指南中設定截止日期雲端提交者中的步驟。

  3. 使用 git複製截止日期雲端範例 GitHub 儲存庫

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

執行環境變數範例

  1. 使用截止日期雲端 CLI 提交job_env_vars範例。

    deadline bundle submit job_env_vars Submitting to Queue: MySampleQueue ...
  2. 在截止日期雲端監視器中,您可以查看新任務並監控其進度。與佇列相關聯的Linux機群有工作者可執行任務後,任務會在幾秒鐘內完成。選取任務,然後選擇任務面板右上角選單中的檢視日誌選項。

    右側有三個工作階段動作:啟動 JobEnv啟動 StepEnv任務執行。視窗中央的日誌檢視對應至右側的所選工作階段動作。

比較工作階段動作及其定義

在本節中,您會使用截止日期雲端監視器來比較工作階段動作與任務範本中定義它們的位置。它從上一節繼續。

在文字編輯器中開啟檔案 job_env_vars/template.yaml。這是定義工作階段動作的任務範本。

  1. 在截止日期雲端監視器中選取啟動 JobEnv 工作階段動作。您將看到以下日誌輸出。

    024/07/16 16:18:27-07:00 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 --------- Entering Environment: JobEnv 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 Setting: JOB_VERBOSITY=MEDIUM 2024/07/16 16:18:27-07:00 Setting: JOB_EXAMPLE_PARAM=An example parameter value 2024/07/16 16:18:27-07:00 Setting: JOB_PROJECT_ID=project-12 2024/07/16 16:18:27-07:00 Setting: JOB_ENDPOINT_URL=https://internal-host-name/some/path 2024/07/16 16:18:27-07:00 Setting: QT_QPA_PLATFORM=offscreen

    任務範本的下列幾行指定了此動作。

    jobEnvironments: - name: JobEnv description: Job environments apply to everything in the job. variables: # When applications have options as environment variables, you can set them here. JOB_VERBOSITY: MEDIUM # You can use the value of job parameters when setting environment variables. JOB_EXAMPLE_PARAM: "{{Param.ExampleParam}}" # Some more ideas. JOB_PROJECT_ID: project-12 JOB_ENDPOINT_URL: https://internal-host-name/some/path # This variable lets applications using the Qt Framework run without a display QT_QPA_PLATFORM: offscreen
  2. 在截止日期雲端監視器中選取啟動 StepEnv 工作階段動作。您將看到以下日誌輸出。

    2024/07/16 16:18:27-07:00 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 --------- Entering Environment: StepEnv 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 Setting: STEP_VERBOSITY=HIGH 2024/07/16 16:18:27-07:00 Setting: JOB_PROJECT_ID=step-project-12

    任務範本的下列幾行指定了此動作。

    stepEnvironments: - name: StepEnv description: Step environments apply to all the tasks in the step. variables: # These environment variables are only set within this step, not other steps. STEP_VERBOSITY: HIGH # Replace a variable value defined at the job level. JOB_PROJECT_ID: step-project-12
  3. 在截止日期雲端監視器中選取任務執行工作階段動作。您將看到下列輸出。

    2024/07/16 16:18:27-07:00 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 --------- Running Task 2024/07/16 16:18:27-07:00 ============================================== 2024/07/16 16:18:27-07:00 ---------------------------------------------- 2024/07/16 16:18:27-07:00 Phase: Setup 2024/07/16 16:18:27-07:00 ---------------------------------------------- 2024/07/16 16:18:27-07:00 Writing embedded files for Task to disk. 2024/07/16 16:18:27-07:00 Mapping: Task.File.Run -> /sessions/session-b4bd451784674c0987be82c5f7d5642deupf6tk9/embedded_files08cdnuyt/tmpmdiajwvh 2024/07/16 16:18:27-07:00 Wrote: Run -> /sessions/session-b4bd451784674c0987be82c5f7d5642deupf6tk9/embedded_files08cdnuyt/tmpmdiajwvh 2024/07/16 16:18:27-07:00 ---------------------------------------------- 2024/07/16 16:18:27-07:00 Phase: Running action 2024/07/16 16:18:27-07:00 ---------------------------------------------- 2024/07/16 16:18:27-07:00 Running command sudo -u job-user -i setsid -w /sessions/session-b4bd451784674c0987be82c5f7d5642deupf6tk9/tmpiqbrsby4.sh 2024/07/16 16:18:27-07:00 Command started as pid: 2176 2024/07/16 16:18:27-07:00 Output: 2024/07/16 16:18:28-07:00 Running the task 2024/07/16 16:18:28-07:00 2024/07/16 16:18:28-07:00 Environment variables starting with JOB_*: 2024/07/16 16:18:28-07:00 JOB_ENDPOINT_URL=https://internal-host-name/some/path 2024/07/16 16:18:28-07:00 JOB_EXAMPLE_PARAM='An example parameter value' 2024/07/16 16:18:28-07:00 JOB_PROJECT_ID=step-project-12 2024/07/16 16:18:28-07:00 JOB_VERBOSITY=MEDIUM 2024/07/16 16:18:28-07:00 2024/07/16 16:18:28-07:00 Environment variables starting with STEP_*: 2024/07/16 16:18:28-07:00 STEP_VERBOSITY=HIGH 2024/07/16 16:18:28-07:00 2024/07/16 16:18:28-07:00 Done running the task 2024/07/16 16:18:28-07:00 ---------------------------------------------- 2024/07/16 16:18:28-07:00 Uploading output files to Job Attachments 2024/07/16 16:18:28-07:00 ----------------------------------------------

    任務範本的下列幾行指定了此動作。

    script: actions: onRun: command: bash args: - '{{Task.File.Run}}' embeddedFiles: - name: Run type: TEXT data: | echo Running the task echo "" echo Environment variables starting with JOB_*: set | grep ^JOB_ echo "" echo Environment variables starting with STEP_*: set | grep ^STEP_ echo "" echo Done running the task