我试图在GAE中部署一个简单的微服务应用程序(Spring )。应用程序有3项服务- 1.发现服务2. Spring网关3.客户服务
我试图通过API网关调用一个API。这在本地机器中很好,但是在GAE托管应用程序中获得404。
我使用的URL是- ,相应的YAML配置是:
spring:
cloud:
gateway:
routes:
-id: customer-service
uri: https://XXXXXX.customer-service.appspot.com/
predicates:
- Path=/customer-service/**
filters:
- StripPrefix=1上面代码段中配置的URI是GAE服务的目标URL。
所以当我在浏览器中点击 url时,我得到了404错误,但是如果我点击了直接url ,它就能工作了。
当我在本地环境中更改API网关配置(将uri更改为基于云的服务uri)时,问题是不可重现的。因此,我认为Gateway无法将请求路由到App服务目标URL。
我怎样才能解决这个问题?
发布于 2020-04-20 10:58:38
我认为问题在于配置文件中用于路由请求的url。根据google云文档,要从一个服务调用到另一个服务,您应该使用如下端点
https://VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com如yo所见,https://cloud.google.com/appengine/docs/standard/java/communicating-between-services
您使用的url似乎不适用于此。
无论如何,我认为在无服务器环境中,如app引擎,执行服务发现和通过网关路由请求的最佳选择是使用google提供的服务。在服务发现的情况下,这是自动完成的,如果你想要一个网关,你可以使用谷歌云端点,与应用程序引擎有一个很好的集成。因为这是用于这些应用程序的网关。
https://stackoverflow.com/questions/61320285
复制相似问题