Yun*_*ium 0 java tcp spring-boot google-cloud-platform app-engine-flexible
部署到谷歌应用引擎的Spring启动应用程序和对端点的请求正确地响应了预期的硬编码文本.除了8080
暴露的默认端口之外,TCP:8595
还会暴露另一个端口,通过跟踪设备将数据发布到该端口.
问题是当我测试得到tcp连接时telnet projectid.appspot.com 8595
我得到了这个响应Connecting To projectid.appspot.com...Could not open connection to the host, on port 8595: Connect failed
,想到本地连接没有失败.
应用程序引擎中托管的应用程序如何公开端口?
免责声明:我是App Engine和GCP的新手
正如它在文档中所述,您应该能够在app.yaml中设置端口转发,然后通过防火墙规则公开它.
1.)端口转发
network:
forwarded_ports:
- 2222/tcp
Run Code Online (Sandbox Code Playgroud)
调试思路:使用AppEngine Flex,您可以通过SSH进入实例进行进一步调试(App Engine> Instances,实例旁边的SSH按钮).
登录后,您应该能够运行此docker命令以查看暴露的端口(在我的情况下,我暴露了8081在我的身上app.yaml
):
$ sudo docker port gaeapp
8080/tcp -> 172.17.0.1:8080
8081/tcp -> 0.0.0.0:8081
Run Code Online (Sandbox Code Playgroud)
您甚至可以检查它是否侦听(在我的情况下,它是正确回复的HTTP服务404):
curl localhost:8081
{"timestamp":1519837414455,"status":404,"error":"Not Found","message":"No message available","path":"/"}
Run Code Online (Sandbox Code Playgroud)
(对于telnet,你需要安装它sudo apt-get update && sudo apt-get install -y telnet
)
如果显示您的端口,则下一步是仔细检查防火墙设置.
2.)防火墙设置
gcloud compute firewall-rules create myrule --allow=tcp:8595 --source-ranges=0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
但是,这只会让您直接通过VM实例IP访问您的应用程序!(您可以在控制台中找到您的IP或列出您的实例gcloud compute instances list
)
请参阅文档中的forwarded_ports说明
forwarded_ports 可选.您可以将实例(HOST_PORT)中的端口转发到Docker容器(CONTAINER_PORT).如果仅指定PORT,则App Engine会假定它与主机和容器上的端口相同.默认情况下,转发TCP和UDP流量.流量必须直接发送到目标实例,而不是通过appspot.com域或您的自定义域.
归档时间: |
|
查看次数: |
737 次 |
最近记录: |