如何设置GRPC以便测试Postman的HealthCheck?

mkshixfv  于 2023-03-12  发布在  Postman
关注(0)|答案(1)|浏览(150)

我是gRPC的新手,一直在阅读关于健康检查的文章,以确保服务器已经启动并准备好接收请求。为此,我在服务器Program.cs中得到了这个:

services.AddGrpc();
services.AddGrpcHealthChecks().AddCheck("Check", () => HealthCheckResult.Healthy());
services.Configure<HealthCheckPublisherOptions>(options => options.Delay = TimeSpan.Zero);

对于应用程序构建器,我添加以下内容:

app.UseRouting();
app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true });
app.UseEndpoints(endpoints =>
{
    endpoints.MapGrpcHealthChecksService();
    endpoints.MapGet("/", () => "Some text");
});

我假设这实际上是添加了一个可以调用的默认Health Check服务。我可以看到客户端如何调用它,通过设置一个通道并使用url,但如何从Postman调用它呢?gRPC请求需要一个protobuf文件(没有1),要启用的服务器反射(没有)或创建并使用protobuf API。

更新

我试着创建一个proto文件,它应该满足here服务的要求,它似乎与我在app builder中看到的设置相匹配,因为它们都引用了grpc.health.v1.health/Check。但是,当从postman调用它时,我得到了这个错误:
“收到由内部客户端错误触发的代码为2的RST_STREAM:协议错误”

tag5nh1u

tag5nh1u1#

看起来这是一个协议问题。我需要在 Postman 能够连接之前正确地配置它。

相关问题