从GCP上部署的响应式应用中获得一个烧瓶式RESTful API

问题描述

我正在尝试在无法启用公用IP的Google Cloud VM实例上部署响应式应用程序。响应式应用程序会根据用户输入点击烧瓶RESTful API端点。

应用和参数:

  • Flask应用(主机='0.0.0.0',端口= 5000)
  • 反应性应用(主机='0.0.0.0',端口= 3000)

问题:我曾尝试将flask应用程序托管在同一VM实例上,但反应式应用程序无法访问API端点。

工作(仅限本地):当在本地运行反应式应用程序和flask应用程序时,将击中(本地)API端点。

不起作用:

  1. 我尝试在GCP上部署应用程序,并转发端口(active)(http:// localhost:3000)和flask应用程序(http:// localhost:5000),但是flask应用程序没有被点击
  2. 我在本地(在笔记本电脑上)运行了反应式应用程序,并转发了烧瓶应用程序。令人惊讶的是,本地反应式应用程序能够在GCP上访问API端点。但目标是让GCP应用程序达到RESTful API
  3. 我为主机尝试了不同的值(“ localhost”,“ 127.0.0.1”),并重复了1、2

Flask调试器未记录API调用。不幸的是,Chrome的网络日志无法跟踪从反应式应用发送到RESTful API的请求。因此,我无法从反应式应用程序获取有关请求的更多信息。

当两者都部署在GCP VM实例上时,是否有办法从反应式应用中调用RESTful API?我可以将Flask应用程序移至另一个VM实例,但是无法启用公共IP,并且不能修改防火墙规则。

注意:由于无法启用公共IP ,因此不能与this question重复。

解决方法

请验证以下内容:

  • 确保GCP防火墙允许流量。
  • 验证VM实例中的本地防火墙也允许流量;与
  • 核对

sudo netstat -tanp

端口实际上是开放的,并绑定到0.0.0.0/0或实例的内部IP。

,

@GagandeepT 的回答将提供初步诊断,以检查是否正确指定了主机和端口。我终于找到了潜在的问题 - 即使 API 调用在技术上是“本地”的,代理也会重定向所有 http 和 https 流量。