问题描述
从0.12.2
升级到0.13.5
后,graphql组件出现连接问题。 Prefect服务器正在其他服务器上运行,但graphql url仍为http://localhost:4200/graphql
。 server.ui.graphql_url
与版本0.12.2
的配合很好,但是现在我找不到任何适当配置graphql url的方法。
在下面,您会找到config.toml
:
$ cat ~/.prefect/config.toml
[logging]
level = "INFO"
[api]
url = "http://192.168.40.180:4200"
[server.database]
host_port = "6543"
[context.secrets]
SLACK_WEBHOOK_URL = 'https://hooks.slack.com/services/xx/XX/Xx'
[server.ui]
graphql_url = "http://192.168.40.180:4200/graphql"
在图像中,您可以看到案件的POC。
我对配置高级服务器的旧方法和新方法感到困惑。您对这个问题有任何想法吗?
解决方法
编辑:我下面提到的票证已经关闭;当发布0.13.9时,它将包含一个新的运行时配置apollo_url
(由于我们一直在寻找容器,因此更准确),该配置会插入到UI构建的静态设置文件中,在应用程序启动时获取。这应该达到以下所有要点。
这是对Prefect Server ^ 0.13.0的更改,它删除了graphql_url
变量作为可配置的环境变量。
以前的Server版本在UI代码上使用了find-replace,在代码构建时会对其进行编译和最小化。这样做的原因是,它将所需的节点模块的安装和构建应用程序的负担从客户端安装转移到了Prefect上,而不是在发布时转移到Prefect上,因为在容器化中它们可能花费很长时间(每个花费10分钟以上)。环境。但是,缺点是修改在构建时注入的环境变量需要对先前注入的变量进行不理想的查找,这意味着修改这些变量需要提取新的映像。
我们选择将新版本与应用程序内输入一起提供,从而允许在浏览器运行时更改服务器终结点。这样一来,单个UI实例就可以灵活地连接到任何可访问的Server安装,并利用本地存储在浏览器会话之间保持此设置。
也就是说,我们已经准备好票证,以比以前版本更好的方式重新公开默认配置。 You can follow that ticket here。