1. Variabel untuk program tugas
Batch Compute menyediakan variabel berikut untuk program tugas:
Variabel | Nilai |
BATCH_COMPUTE_DAG_JOB_ID | ID Pekerjaan, tergantung pada situasi aktual |
BATCH_COMPUTE_DAG_TASK_ID | ID Tugas, tergantung pada situasi aktual |
BATCH_COMPUTE_DAG_INSTANCE_ID | ID Instans, tergantung pada situasi aktual |
BATCH_COMPUTE_OSS_HOST | Nama host OSS, tergantung pada situasi aktual |
BATCH_COMPUTE_REGION | Wilayah tempat host berada, tergantung pada situasi aktual |
BATCH_COMPUTE_CLUSTER_ID | id cluster |
BATCH_COMPUTE_WORKER_ID | id pekerja |
Lihat tabel berikut untuk perbedaan variabel yang digunakan oleh program tugas yang berjalan di dalam kontainer Docker:
Variabel | Nilai |
USER | root |
PWD | /batchcompute/workdir |
PATH | /sbin:/usr/sbin:/bin:/usr/bin. |
HOME | /root |
BATCH_COMPUTE_DAG_JOB_ID | ID Pekerjaan, tergantung pada situasi aktual |
BATCH_COMPUTE_DAG_TASK_ID | ID Tugas, tergantung pada situasi aktual |
BATCH_COMPUTE_DAG_INSTANCE_ID | ID Instans, tergantung pada situasi aktual |
BATCH_COMPUTE_OSS_HOST | Nama host OSS, tergantung pada situasi aktual |
BATCH_COMPUTE_REGION | Wilayah tempat host berada, tergantung pada situasi aktual |
2. Cara menggunakan variabel
Anda dapat mengambil variabel dari EnvVars di program tugas, sebagai contoh:
2.1. Menggunakan Variabel dalam Program Python:
task_id = os.environ['BATCH_COMPUTE_DAG_TASK_ID']
instance_id = os.environ['BATCH_COMPUTE_DAG_INSTANCE_ID']2.2. Menggunakan Variabel dalam Program Java:
String taskId = System.getenv("BATCH_COMPUTE_DAG_TASK_ID");
String instanceId = System.getenv("BATCH_COMPUTE_DAG_INSTANCE_ID");3. Menentukan variabel
Selain variabel yang disediakan oleh sistem, Anda juga dapat menentukan variabel baru saat mengirimkan pekerjaan.
3.1. Menggunakan Python SDK
Contoh kode:
env = {
'k1': 'v1',
'k2': 'v2'
}
...
job_desc['DAG']['Tasks']['my-task']['Parameters']['Command']['EnvVars']=env
...3.2. Menggunakan Java SDK
Contoh kode:
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. Menggunakan Alat Baris Perintah
bcs sub "python main.py" -e k1:v1,k2:v2