【发布时间】:2020-11-05 16:08:44
【问题描述】:
我一直在尝试在 Fargate 中设置一个 OSRM 后端实例。但是,我无法成功地做到这一点。我在其他地方读过如何在 EC2 实例中托管,但是,没有关于如何在 AWS Fargate 上托管它。
我已经能够在下面修改 OSRM-backend 的基础 docker 镜像(基础镜像暴露端口 5000):
FROM osrm/osrm-backend
WORKDIR /data
RUN apt-get update && apt-get install -y --no-install-recommends curl
RUN curl http://download.geofabrik.de/europe/ireland-and-northern-ireland-latest.osm.pbf --output ni-latest.osm.pbf && \
osrm-extract -p /opt/car.lua ni-latest.osm.pbf && \
osrm-partition ni-latest.osrm && \
osrm-customize ni-latest.osrm
CMD ["osrm-routed", "--algorithm", "mld", "ni-latest.osrm", "--max-matching-size","50000"]
一旦我将它推送到容器注册表中,在弹性容器服务中设置任务定义,就会给出状态码 200 和以下内容:
[info] starting up engines, v5.22.0
[info] Threads: 4
[info] IP address: 0.0.0.0
[info] IP port: 5000
[info] http 1.1 compression handled by zlib version 1.2.11
[info] Listening on: 0.0.0.0:5000
[info] running and waiting for requests
然而,在 ECS 任务中给定公共 IP 并尝试在 sagemaker 笔记本中调用它之后,它按预期运行:
response = requests.get('http://{ECSpublicIP}:80/match/v1/driving/13.388860,52.517037;13.397634,52.529407?overview=full&geometries=geojson')
它给出了一个连接错误代码 111,我无法弄清楚原因。是否可以在 Fargate 上托管 OSRM?
谢谢
【问题讨论】:
标签: python-3.x amazon-web-services docker python-requests osrm