1. 任務程式環境變數
BatchCompute為使用者任務程式提供以下的環境變數:
變數名 | 變數值 |
BATCH_COMPUTE_DAG_JOB_ID | 作業ID,視實際情況而定 |
BATCH_COMPUTE_DAG_TASK_ID | 任務名稱,視實際情況而定 |
BATCH_COMPUTE_DAG_INSTANCE_ID | 執行個體ID,視實際情況而定 |
BATCH_COMPUTE_OSS_HOST | OSS host,視實際情況而定 |
BATCH_COMPUTE_REGION | 地區,視實際情況而定 |
BATCH_COMPUTE_CLUSTER_ID | cluser id |
BATCH_COMPUTE_WORKER_ID | worker 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 | 任務名稱,視實際情況而定 |
BATCH_COMPUTE_DAG_INSTANCE_ID | 執行個體ID,視實際情況而定 |
BATCH_COMPUTE_OSS_HOST | OSS host,視實際情況而定 |
BATCH_COMPUTE_REGION | 地區,視實際情況而定 |
2. 如何使用環境變數
您只需在任務運行程式中從環境變數中擷取即可,樣本:
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 parmas = new Parameters();
params.setCommand(cmd);
...
desc.setParameters(params);
3.3. 使用命令列工具
bcs sub "python main.py" -e k1:v1,k2:v2