如何通过REST API从Marathon的任务列表中获取任务?
没问题,我来帮你梳理这个Marathon API的用法和响应细节:
获取Marathon应用任务列表API
请求端点
你可以通过以下GET请求获取myapplication的任务列表:GET /marathon/v2/apps/myapplication/tasks/
响应内容示例
该接口会返回包含任务数组的JSON结构,核心内容如下(已保留关键字段):
{ "tasks": [ { "ipAddresses": [{"ipAddress": "172.17.0.3", "protocol": "IPv4"}], "stagedAt": "2018-03-19T15:38:59.486Z", "state": "TASK_RUNNING", "ports": [22660], "startedAt": "2018-03-19T15:39:05.571Z", "version": "2018-03-19T15:38:59.157Z", "id": "myapplication.a47c2cd2-2b8b-11e8-a2bb-0e25310fd094", "appId": "/myapplication", "slaveId": "d0207878-76c3-4ce5-8d1a-f2cab319728c-S2", "host": "10.134.52.1..." } ] }
关键字段说明
- ipAddresses:任务实例的网络地址信息,包含具体IP和协议类型(这里是IPv4)
- state:任务当前运行状态,
*TASK_RUNNING*表示任务处于正常运行状态 - ports:任务对外暴露的端口列表,可用于访问该任务实例
- startedAt:任务实际启动的UTC时间戳,便于排查启动耗时问题
- id:任务的唯一标识,由应用名称和UUID组合而成,可用于定位特定任务
- host:承载该任务的宿主机IP,用于定位任务运行节点
内容的提问来源于stack exchange,提问作者yurii.pitomets




