为什么云运行服务(next.js)无法通过直接VPC出口连接到另一个云运行服务(node.js)

问题描述 投票:0回答:1

尽管我设置了直接出口 VPC 连接,但我似乎无法将流量从一个云运行服务发送到另一个云运行服务。

我目前正在运行 2 个云服务(客户端服务器)。

服务器配置为仅允许通过 Privacy Service Connect 服务 (psc) 进行内部流量。

pscconsumer vpc 中公开可在 10.0.0.2 访问的端点,并在连接到内部负载均衡器 (ilb) 的单独 Producer vpc 中发布服务,该负载均衡器将流量引导至 服务器

客户端的入口控制设置为允许所有流量,因为它是公共网络应用程序。在 client 上启用了consumer vpc 的直接 VPC 出口。

最后,我在私有区域中创建了一条 DNS A 记录,将

server's *run.app url 映射到 psc's 消费者 IP 地址 10.0.0.2.

每次

client 使用其 run.app url 向服务器发出请求时,都会引发 CORS 错误。

Access to XMLHttpRequest at 'https://test-development-enterprise-api-ummzxs4jpa-ez.a.run.app/api/auth/passwordless' from origin 'https://psc-consumer-ummzxs4jpa-ez.a.run.app' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
奇怪的是,我可以通过 sshing 到我在消费者网络中生成的虚拟虚拟机来成功向 

server 发出请求。

ify@psc-consumer-2:~$ curl -k https://test-development-enterprise-api-ummzxs4jpa-ez.a.run.app/api/health {"message":"Healthy Services","uptime":"5:3:46"}
知道这里可能出现什么问题吗?如果需要的话,我很乐意改变我的方法。


下面是一个网络拓扑,很大程度上反映了我的实现。

如果有些事情没有意义,请提前道歉,因为我对云网络还很陌生。

google-cloud-platform serverless vpn google-cloud-run google-vpc
1个回答
0
投票
发布 @guillaume 先生和 @remedy_man 先生的评论作为本文的答案,以帮助用户解决这个问题。根据@guillaume,问题是从服务 A、CSS 和 JS 加载数据以在浏览器中显示页面,然后尝试从浏览器访问服务 B,因为当浏览器中有静态代码时,您不会调用后端。

解决 @remedy_man 发布的问题是使用“service-a 的后端作为前端来代理对 service-b 的请求”

© www.soinside.com 2019 - 2024. All rights reserved.