すべてのプロダクト
Search
ドキュメントセンター

Batch Compute:環境変数

最終更新日:Dec 28, 2024

1. タスクプログラムの変数

Batch Compute は、タスクプログラムに対して次の変数を提供します。

変数

BATCH_COMPUTE_DAG_JOB_ID

ジョブ ID。実際の状況によって異なります。

BATCH_COMPUTE_DAG_TASK_ID

タスク ID。実際の状況によって異なります。

BATCH_COMPUTE_DAG_INSTANCE_ID

インスタンス ID。実際の状況によって異なります。

BATCH_COMPUTE_OSS_HOST

OSS ホスト名。実際の状況によって異なります。

BATCH_COMPUTE_REGION

ホストが配置されているリージョン。実際の状況によって異なります。

BATCH_COMPUTE_CLUSTER_ID

クラスター ID

BATCH_COMPUTE_WORKER_ID

ワーカー ID

Docker コンテナで実行されているタスクプログラムの変数の違いについては、次の表を参照してください。

変数

USER

root

PWD

/batchcompute/workdir

PATH

/sbin:/usr/sbin:/bin:/usr/bin。 パス /usr/local/bin は存在しないことに注意してください。パスを設定する場合は、ジョブの送信時に EnvVars フィールドで指定します。

HOME

/root

BATCH_COMPUTE_DAG_JOB_ID

ジョブ ID。実際の状況によって異なります。

BATCH_COMPUTE_DAG_TASK_ID

タスク ID。実際の状況によって異なります。

BATCH_COMPUTE_DAG_INSTANCE_ID

インスタンス ID。実際の状況によって異なります。

BATCH_COMPUTE_OSS_HOST

OSS ホスト名。実際の状況によって異なります。

BATCH_COMPUTE_REGION

ホストが配置されているリージョン。実際の状況によって異なります。

2. 変数の使用方法

タスクプログラムの EnvVars から変数を取得できます。次に例を示します。

2.1. Python プログラムでの変数の使用:

task_id = os.environ['BATCH_COMPUTE_DAG_TASK_ID']
instance_id = os.environ['BATCH_COMPUTE_DAG_INSTANCE_ID']

2.2. Java プログラムでの変数の使用:

String taskId = System.getenv("BATCH_COMPUTE_DAG_TASK_ID");
String instanceId = System.getenv("BATCH_COMPUTE_DAG_INSTANCE_ID");

3. 変数の定義

システムが提供する変数に加えて、ジョブの送信時に新しい変数を定義することもできます。

3.1. Python SDK の使用

コードスニペット:

env = {
   'k1': 'v1',
   'k2': 'v2'
}
...
job_desc['DAG']['Tasks']['my-task']['Parameters']['Command']['EnvVars']=env
...

3.2. Java SDK の使用

コードスニペット:

Command cmd= new Command();
cmd.addEnvVars("k1","v1");
cmd.addEnvVars("k2","v2");
...

TaskDescription desc = TaskDescription();
Parameters params = new Parameters();
params.setCommand(cmd);
...
desc.setParameters(params);

3.3. コマンドラインツールの使用

bcs sub "python main.py" -e k1:v1,k2:v2