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。 |
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