如何通过Postman向Eclipse-SUMO Docker镜像传递仿真参数?
SUMO Docker 镜像+Postman 提交仿真任务操作指引
1. 云服务器基础环境配置
- 先在云服务器上安装Docker和Docker Compose,对应系统命令如下:
- Ubuntu/Debian:
apt update && apt install docker.io docker-compose -y - CentOS/Rocky Linux:
yum install docker docker-compose -y
- Ubuntu/Debian:
- 启动Docker并设置开机自启:
systemctl enable --now docker - 去云服务商控制台的安全组规则中,放行后续Web服务要用到的端口(比如用8080就放行TCP 8080的入站规则)
2. 封装带HTTP接口的SUMO自定义镜像
原生官方SUMO镜像没有内置HTTP服务,无法直接接收Postman的POST请求,需要你加一层轻量Web服务封装:
- 基于官方SUMO镜像写Dockerfile,搭配Flask/FastAPI等轻量Web框架,实现三个核心逻辑:
- 暴露POST接口接收JSON格式的仿真参数
- 将接收的参数转换为SUMO可识别的配置格式,调用
sumo命令行执行仿真任务 - 仿真完成后将结果封装为JSON返回
- 自定义镜像编写完成后执行构建命令:
docker build -t sumo-http-sim .
3. 启动仿真容器
运行容器时做好端口映射和数据持久化,参考命令:docker run -d -p 8080:8080 -v /你服务器本地的仿真结果存储路径:/容器内的仿真输出路径 --name sumo-sim sumo-http-sim
启动完成后可以先本地测试接口连通性:curl http://你的服务器公网IP:8080/health,正常会返回服务正常的响应。
4. Postman请求配置
- 新建POST请求,请求地址填
http://你的服务器公网IP:8080/你设置的仿真接口路径 - 请求头中添加
Content-Type: application/json - 请求体选择raw格式,类型选JSON,填入你的仿真参数即可
- 点击发送后等待仿真执行完成,即可拿到返回的仿真结果
关键提醒
- 不要直接用官方SUMO镜像启动就尝试接收POST请求,必须自己封装Web服务层
- 大体积的路网、车辆配置文件建议提前放到服务器的挂载目录中,不要通过JSON传递,避免请求超时
- 长耗时的仿真任务建议给接口加异步处理逻辑,避免Postman请求超时
内容的提问来源于stack exchange,提问作者Ehsan Xan
相关产品推荐
相关产品推荐

