我一直在尝试在Fargate中设置一个OSRM-backend实例。然而,我还没能成功地做到这一点。我在其他地方读过关于如何在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 notebook中调用它之后,它会像预期的那样运行:
response = requests.get('http://{ECSpublicIP}:80/match/v1/driving/13.388860,52.517037;13.397634,52.529407?overview=full&geometries=geojson')它给出了一个连接错误代码111,我还不能找出原因。在Fargate上托管OSRM可能吗?
谢谢
发布于 2020-11-05 16:08:45
抱歉,回复晚了,不知道这是否仍然相关,但是的,它应该是可能的。在本地部署时,您是否能够通过localhost访问它?还要确保您的容器端口映射到位,有关任务网络https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/的更多信息,请参阅此链接
https://stackoverflow.com/questions/61125870
复制相似问题