我在使用lean-cli部署时也出现了相同的404问题。

网络环境:广东电信 广州
操作系统:MacOS Sierra 版本号:10.12.6
lean-cli版本:0.17.1
在终端运行了curl -v 'https://app-router.leancloud.cn/1/route?appId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz'后显示也是返回404,清除缓存和重启后依旧404,浏览器里访问这个地址正常,没有开代理。

但在同一个局域网的另一台mac里可以部署成功,lean-cli版本是0.14.0

建议先升级命令行工具,然后贴一下 dig app-router.leancloud.cn 的结果

flask-todo-demo git:(master) lean deploy
[INFO] 当前命令行工具版本: 0.17.1
[INFO] 获取应用信息 ...
[INFO] 准备部署应用 TestPython(s2c2gd17pCD9V7NV5hqUK63v-gzGzoHsz) 到 cn 节点分组 web 生产环境
[INFO] 检测到 Python 运行时
[INFO] 检测到项目使用 pyenv,请确保当前环境 pyenv 已正确设置
[ERROR] query app router failed: 404

求解决
这个是运行官方demo

请贴一下 dig app-router.leancloud.cn 的结果

$ dig app-router.leancloud.cn

; <<>> DiG 9.8.3-P1 <<>> app-router.leancloud.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;app-router.leancloud.cn. IN A

;; ANSWER SECTION:
app-router.leancloud.cn. 594 IN A 123.59.50.114
app-router.leancloud.cn. 594 IN A 123.59.50.132

;; Query time: 26 msec
;; SERVER: 192.168.3.1#53(192.168.3.1)
;; WHEN: Thu Dec 28 21:25:19 2017
;; MSG SIZE rcvd: 73

从这个结果来看解析的 IP 是正确的,麻烦再运行 curl -v 'https://app-router.leancloud.cn/1/route?appId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz' 看看结果里的 IP 是否是这样两个。

这个错误通常是你本地的 DNS 受到污染,解析出错误的结果。

$ curl -v 'https://appppId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz'
* Trying 106.75.35.143...
* TCP_NODELAY set
* Connected to app-router.leancloud.cn (106.75.35.143) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.leancloud.cn
* Server certificate: GeoTrust SSL CA - G3
* Server certificate: GeoTrust Global CA

GET /1/route?appId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz HTTP/1.1
Host: app-router.leancloud.cn
User-Agent: curl/7.54.0
Accept: /

< HTTP/1.1 404 Not Found
< Server: openresty
< Date: Mon, 01 Jan 2018 23:33:29 GMT
< Content-Type: application/json;charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< Cache-Control: no-cache,no-store
< Pragma: no-cache
<

显示IP地址不同了。浏览器里可以正常访问不是404。

运行下面语句清除缓存后在终端运行 curl -v 'https://appppId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz' 还是返回404:
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder

这个错误应该你本地的 DNS 返回了一个错误的地址,可以先把 DNS 修改为 119.29.29.29 或者 223.5.5.5 再试一下。

你好 我最近几天也出现了这种情况

;; ANSWER SECTION:
app-router.leancloud.cn. 300	IN	A	106.75.98.168
app-router.leancloud.cn. 300	IN	A	123.59.50.132

Mac-mini% curl -v 'https://app-router.leancloud.cn/1/route?appId=HsKsEKskUQvnOFrEoRAipdd3-gzGzoHsz'
*   Trying 106.75.27.96...
* TCP_NODELAY set
* Connected to app-router.leancloud.cn (106.75.27.96) port 443 (#0)
* ALPN, offering http/1.1

的确ip不一致, 但是比较奇怪的是这两个ip 在相近的字段里面, 确定是用户端的问题么?
更诡异的是, 我现在 deploy 不是完全不成功, 大概4次能有1次成功吧

OK 搞定了 指定了 host 果然可以 奇怪 我路由有 dnsmasq 暂时想不出这污染从哪来的