无法访问Cloud Run中运行的服务 求助排查
问题:Cloud Run部署gRPC服务无法访问的配置遗漏点
我通过Workflow将镜像推送至Artifact Registry,再基于该镜像部署了Cloud Run服务。服务处于运行状态,GCP定义的端口已被环境变量读取,日志显示服务正在该端口监听,但无法访问容器的该端口——端口检测工具显示端口关闭,本地调用端点超时。部署官方测试容器"hello"可正常访问8080端口,但改用其他端口就不行。
更新
以下是Go服务启动代码:
port := os.Getenv("PORT") fmt.Println("PORT:" + port) listener, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%s", port)) if err != nil { fmt.Println("error on listen") panic(err) } srv := grpc.NewServer() pb.RegisterWallApiServer(srv, &server{}) reflection.Register(srv) fmt.Println("Starting server on port " + port) if err = srv.Serve(listener); err != nil { fmt.Println("error on serve") panic(err) }
使用默认端口8080并在镜像中暴露后,向443端口发送请求时出现错误:
rpc error: code = Unavailable desc = connection closed before server preface received.
以下是调用代码:
func main() { creds := insecure.NewCredentials() address := "idfi-api-w2b5dfqtlq-uc.a.run.app:443" conn, err := grpc.Dial(address, grpc.WithTransportCredentials(creds)) if err != nil { log.Fatalf("Failed to connect: %v", err) } defer conn.Close() client := pb.NewWallApiClient(conn) res, err := client.SetWallSignature(context.Background(), &pb.WallSignatureRequest{Address: "0x"}) if err != nil { log.Fatalf("Failed to post message: %v", err) } log.Println(res.Success) }
请问我遗漏了什么配置?
内容的提问来源于stack exchange,提问作者MadeInDreams
相关产品推荐
相关产品推荐

