You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法访问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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:12:40