无法远程访问 Prefect 服务器
Cant Access Prefect Server Remotely
我使用命令 prefect server start --postgres-port=5433 --server-port=5001 --hasura-port=5002 --graphql-port=5003 --expose
在我的 azure 网络中允许的端口启动 prefect 服务器。当我做 docker ps
我得到
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
873bfa5bd6bc prefecthq/ui:core-0.15.7 "/docker-entrypoint.…" 23 minutes ago Up 23 minutes (healthy) 80/tcp, 0.0.0.0:8080->8080/tcp tmp_ui_1
9ca79a768265 prefecthq/apollo:core-0.15.7 "tini -g -- bash -c …" 23 minutes ago Up 23 minutes (healthy) 0.0.0.0:5003->4200/tcp tmp_apollo_1
ab7c87ddbabb prefecthq/server:core-0.15.7 "tini -g -- python s…" 23 minutes ago Up 23 minutes tmp_towel_1
ef230baeddb5 prefecthq/server:core-0.15.7 "tini -g -- bash -c …" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5001->4201/tcp tmp_graphql_1
410c38f08f83 hasura/graphql-engine:v1.3.3 "graphql-engine serve" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5002->3000/tcp tmp_hasura_1
82748fbc9f4d postgres:11 "docker-entrypoint.s…" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5433->5432/tcp tmp_postgres_1
我的~/.prefect/config.toml
是
[server]
endpoint = "http://ipaddress:5003/graphql"
[server.ui]
apollo_url = "http://ipaddress:5003/graphql"
然后当我启动服务器时,状态如图所示并重定向到 ipaddress:8080/getting-started 页面
我使用 docker logs ab7c87ddbabb
检查了 tmp_towel_1
的日志,因为它没有显示正常状态,我发现了一些错误
[Errno 111] Connect call failed ('some_ipaddress_which_i_dont_know_about', 3000)"}
我想是 docker 网络 ip 之类的。没有线索。
谁能指出我可能哪里错了?
通过社区 Slack 发布了同样的问题,根据那里的讨论,我们认为解决方案是使用 --server-port
设置端口而不公开其他端口,因为这些端口仅在各个组件之间内部使用。所以下面的命令应该有效:
prefect server start --server-port=5003 --no-postgres-port --use-volume --expose
然后在 config.toml 中,使用:
[server]
endpoint = "http://YOUR_MACHINES_PUBLIC_IP:5003/graphql"
[server.ui]
apollo_url = "http://YOUR_MACHINES_PUBLIC_IP:5003/graphql"
在此分享给后代。
我使用命令 prefect server start --postgres-port=5433 --server-port=5001 --hasura-port=5002 --graphql-port=5003 --expose
在我的 azure 网络中允许的端口启动 prefect 服务器。当我做 docker ps
我得到
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
873bfa5bd6bc prefecthq/ui:core-0.15.7 "/docker-entrypoint.…" 23 minutes ago Up 23 minutes (healthy) 80/tcp, 0.0.0.0:8080->8080/tcp tmp_ui_1
9ca79a768265 prefecthq/apollo:core-0.15.7 "tini -g -- bash -c …" 23 minutes ago Up 23 minutes (healthy) 0.0.0.0:5003->4200/tcp tmp_apollo_1
ab7c87ddbabb prefecthq/server:core-0.15.7 "tini -g -- python s…" 23 minutes ago Up 23 minutes tmp_towel_1
ef230baeddb5 prefecthq/server:core-0.15.7 "tini -g -- bash -c …" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5001->4201/tcp tmp_graphql_1
410c38f08f83 hasura/graphql-engine:v1.3.3 "graphql-engine serve" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5002->3000/tcp tmp_hasura_1
82748fbc9f4d postgres:11 "docker-entrypoint.s…" 23 minutes ago Up 23 minutes (healthy) 127.0.0.1:5433->5432/tcp tmp_postgres_1
我的~/.prefect/config.toml
是
[server]
endpoint = "http://ipaddress:5003/graphql"
[server.ui]
apollo_url = "http://ipaddress:5003/graphql"
然后当我启动服务器时,状态如图所示并重定向到 ipaddress:8080/getting-started 页面
我使用 docker logs ab7c87ddbabb
检查了 tmp_towel_1
的日志,因为它没有显示正常状态,我发现了一些错误
[Errno 111] Connect call failed ('some_ipaddress_which_i_dont_know_about', 3000)"}
我想是 docker 网络 ip 之类的。没有线索。 谁能指出我可能哪里错了?
通过社区 Slack 发布了同样的问题,根据那里的讨论,我们认为解决方案是使用 --server-port
设置端口而不公开其他端口,因为这些端口仅在各个组件之间内部使用。所以下面的命令应该有效:
prefect server start --server-port=5003 --no-postgres-port --use-volume --expose
然后在 config.toml 中,使用:
[server]
endpoint = "http://YOUR_MACHINES_PUBLIC_IP:5003/graphql"
[server.ui]
apollo_url = "http://YOUR_MACHINES_PUBLIC_IP:5003/graphql"
在此分享给后代。