翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キュー環境で環境変数を設定する
多くのアプリケーションとフレームワークでは、環境変数を使用して機能設定、ログ記録レベル、表示設定を制御します。Open Job Description (OpenJD) 環境
環境変数スコープ
AWS Deadline Cloud は、キューにアタッチしたキュー環境から環境変数を適用します。ジョブテンプレート内で、OpenJD 環境を使用してジョブレベルとステップレベルで環境
-
キュー環境 – Deadline Cloud のキューにアタッチするテンプレート。変数は、キューに送信されたすべてのジョブに適用されます。固定値の
variablesマップを使用して変数を設定することも、動的値のスクリプトを使用することもできます。 -
ジョブ環境 – ジョブテンプレートの
jobEnvironmentsで定義されます。変数は、ジョブ内のすべてのステップとタスクに適用されます。ジョブレベルの変数は、キューレベルの変数を同じ名前で上書きします。 -
ステップ環境 – ジョブテンプレートの
stepEnvironmentsで定義されます。変数は、そのステップのタスクにのみ適用されます。ステップレベルの変数は、ジョブレベルまたはキューレベルの変数を同じ名前で上書きします。
キュー環境で変数を設定する
キュー環境の環境変数は、固定値のvariablesマップを使用するか、動的値のonEnterアクションscriptで を使用して設定できます。
次のキュー環境テンプレートは、variablesマップを使用してQT_QPA_PLATFORM変数を に設定しoffscreen、Qt Framework
specificationVersion: 'environment-2023-09'
environment:
name: QtOffscreen
variables:
QT_QPA_PLATFORM: offscreen
仮想環境の変更PATHやアクティブ化などの動的な値の場合は、stdout openjd_env: の形式で行を出力するスクリプトを使用します。VAR=valueopenjd_env: プレフィックスは必須です。プレフィックスなしで echo、export、またはその他のシェルメカニズムを使用しても、ジョブやタスクに変数は伝達されません。
次のキュー環境テンプレートは、スクリプトを使用して QT_QPA_PLATFORM変数を設定します。
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"
キュー環境にアタッチするには、Deadline Cloud コンソールまたは を使用します AWS CLI。詳細については、 AWS Deadline Cloud ユーザーガイドの「キュー環境の作成」を参照してください。次の AWS CLI コマンドは、テンプレートファイルからキュー環境を作成します。
aws deadline create-queue-environment \ --farm-idFARM_ID\ --queue-idQUEUE_ID\ --priority 1 \ --template-type YAML \ --template file://my-queue-env.yaml
conda 仮想環境の作成やアクティブ化などのより複雑な例については、GitHub の Deadline Cloud キュー環境のサンプル
ジョブテンプレートでの変数の設定
ジョブテンプレートで、 jobEnvironmentsまたは stepEnvironmentsエントリにvariablesマップを追加します。各エントリはキーと値のペアで、キーは変数名、値は変数値です。
次のジョブテンプレートは、 QT_QPA_PLATFORM環境変数を に設定しoffscreen、Qt Framework
specificationVersion: 'jobtemplate-2023-09'
name: MyJob
jobEnvironments:
- name: JobEnv
variables:
QT_QPA_PLATFORM: offscreen
1 つの環境定義で複数の変数を設定できます。
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
{{Param. 構文を使用して、変数値のジョブパラメータを参照できます。ParameterName}}
jobEnvironments:
- name: JobEnv
variables:
JOB_EXAMPLE_PARAM: "{{Param.ExampleParam}}"
特定のステップのジョブレベルの変数を上書きするには、同じ変数名でstepEnvironmentsエントリを定義します。次の例ではJOB_PROJECT_ID、ジョブレベルで 値を で定義しproject-12、ステップレベルで 値を で上書きしますstep-project-12。ステップのタスクは、ステップレベルの値を使用します。
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
試す: 環境変数サンプルの実行
Deadline Cloud サンプルリポジトリには、環境変数の設定と表示を示すジョブバンドル
前提条件
-
キューと関連する Linux フリートを持つ Deadline Cloud ファームがない場合は、Deadline Cloud コンソール
のガイド付きオンボーディングエクスペリエンスに従って、デフォルト設定で作成します。 -
ワークステーションに Deadline Cloud CLI と AWS Deadline Cloud モニターがない場合は、「Deadline Cloud 送信者の設定」の手順に従ってください。
-
gitを使用して Deadline Cloud サンプル GitHub リポジトリのクローンを作成します。 git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles
サンプルの実行
-
Deadline Cloud CLI を使用して
job_env_varsサンプルを送信します。deadline bundle submit job_env_vars -
Deadline Cloud モニターで、新しいジョブを選択して進行状況をモニタリングします。キューに関連付けられたLinuxフリートにワーカーが使用可能になると、ジョブは数秒で完了します。タスクを選択し、タスクパネルの右上メニューでログの表示を選択します。
セッションアクションとその定義の比較
ログビューには 3 つのセッションアクションが表示されます。テキストエディタでファイル job_env_vars/template.yaml
-
JobEnv セッション起動アクションを選択します。ログ出力には、設定されているジョブレベルの環境変数が表示されます。
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ジョブテンプレートの次の行は、この環境を定義します。
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 -
StepEnv セッションの起動アクションを選択します。ログ出力には、オーバーライドされた を含むステップレベルの変数が表示されます
JOB_PROJECT_ID。Setting: STEP_VERBOSITY=HIGH Setting: JOB_PROJECT_ID=step-project-12ジョブテンプレートの次の行は、この環境を定義します。
stepEnvironments: - name: StepEnv variables: STEP_VERBOSITY: HIGH JOB_PROJECT_ID: step-project-12 -
タスク実行セッションアクションを選択します。ログ出力には、タスクで使用できるマージされた環境変数が表示されます。がステップレベルの値
JOB_PROJECT_IDを使用することに注意してください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