如何在AWS Fargate中托管OSRM实例?

时间:2020-04-09 16:31:39

标签: python-3.x amazon-web-services docker python-requests osrm

我一直在尝试在Fargate中设置OSRM后端实例。但是,我无法成功完成此操作。我在其他地方读过关于如何在EC2实例中进行托管的信息,但是,没有关于如何在AWS Fargate上进行托管的信息。

我已经能够在下面修改OSRM后端的基本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?

谢谢

1 个答案:

答案 0 :(得分:0)

很抱歉,您的回复很晚,不知道这是否仍然有用,但是应该可以。 在本地部署时,可以通过本地主机访问它吗? 另外,请确保已设置好容器端口映射,有关此任务网络https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/

的更多信息,请参见此链接。
相关问题