我正在使用云外壳在Google Cloud Services上运行节点JS应用。我已经使用 gcloud应用程序部署进行了部署,一切都报告为成功。如果我使用 gcloud应用程序日志尾部-s默认值,我可以看到日志,则表明我的应用程序正在监听3000端口,这是我从应用程序中看到的第一条调试消息。
当我调用末端没有端口的端点时,即
https://myapp.appspot.com/myendpoint
我得到一个错误,
“获取/ myendpoint” 502
如果我尝试使用端口3000,即
https://myapp.appspot.com:3000/myendpoint
该请求只是超时,并且从外壳程序中没有任何日志消息。
我在防火墙上打开了端口3000,而我的app.yaml是
runtime: nodejs
env: flex
service: default
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
更新1:
我还尝试将转发端口添加到我的app.yaml中,
network:
forwarded_ports:
- 3000/tcp
并允许VPC防火墙中的端口3000,但这似乎没有什么区别。
更新2:
我可以使用 wget http://127.0.0.1:3000/myendpoint 命令SSH进入实例并访问端点,但是仍然没有外部访问权限。
更新3:
我也尝试过端口443,监听IP 0.0.0.0。但是它似乎绑定到IPV6 ip地址0,并将端口更改为8443(以某种方式)。真是疯了...
答案 0 :(得分:1)
我通过将服务绑定到端口8080并从我的app.yaml中删除“服务”字段来解决了该问题。默认情况下,所有外部呼叫都路由到端口8080。
未指定外部呼叫。