Get Task Instance Log

获取指定节点实例的日志信息。

前提条件

用户必须为EnOS用户。

请求格式

GET https://{apigw-address}/dataflow-batch-service/v2.0/taskInstances

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

taskInstId

Query

必需

String

任务实例ID(注意:不是任务流实例的ID)。

userId

Query

必需

String

用户ID。如何获取userId信息>>

orgId

Query

必需

String

用户所属的组织ID。如何获取orgId信息>>

maxLength

Query

可选

Integer

需要读取日志信息的最大字符串长度(默认为2^20)。

action

Query

必需

String

固定值:getLog

响应参数

名称

数据类型

描述

data

JSONObject

日志信息结构体。详见 InstanceLog结构体

InstanceLog结构体

示例

{
  "log":"============= ninstance:t104452-201908080322 n "
}

参数

名称

数据类型

描述

log

String

日志信息。

错误码

代码

错误信息

描述

62102

Invalid taskInstId or it has no log

参数 taskInstId 不正确或未查询到日志信息

有关其他错误码的描述,参见 通用错误码

示例

请求示例

url: https://{apigw-address}/dataflow-batch-service/v2.0/taskInstances?action=getLog&taskInstId=105007-20190812013400&maxLength=&userId={}&orgId={}

method: GET

返回示例

{
  "status":0,
  "msg":" Success",
  "data":
    {
     "log":"=========================================================================nrun  num:t1ninstance:t104452-201908080322ncmdline:techo "uuu"nsubmitter:tdb_envisionncurrent time:tThu Aug 08 03:22:38 UTC 2019n=======================================nuuun"
    }
}

Java SDK调用示例

import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

public class SampleCode{
    public static class Request extends PoseidonRequest {
        public void setQueryParam(String key, Object value){
            queryParams().put(key, value);
        }
        public void setHeaderParam(String key, String value){
            headerParams().put(key, value);
        }
        public void setBodyParam(Map<String, Object> bodyPara){
            bodyParams().putAll(bodyPara);
        }
        public void setMethod(String method) {
            this.method = method;
        }
        private String method;
        public String baseUri() {
            return "";
        }
        public String method() {
            return method;
        }
    }

    @Test
    public void taskInstanceLogTest(){
        //1.在EnOS Console的左边导航栏中点击应用注册。
        //2.点击需调用API的应用,查看基本信息中的AccessKey即为accessKey、SecretKey即为secretKey
        String accessKey = "AccessKey of your APP";
        String secretKey = "SecretKey of your APP";

        //新建一个request 然后把需要的参数传进去存在Query的map中,key是参数名字,value是参数值
        Request request = new Request();
        request.setMethod("GET");

        try {
            JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
                    .url("https://{apigw-address}/dataflow-batch-service/v2.0/taskInstances")
                    .queryParam("orgId", "yourOrgId")
                    .queryParam("userId", "yourUserId")
                    .queryParam("taskInstId", "105007-20190812013400")
                    .queryParam("action", "getLog")
                    .getResponse(request, JSONObject.class);

            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}