gpt4 book ai didi

azure - 在 vnet 中使用 gRPC 将 Azure 应用服务连接到 Azure 容器应用

转载 作者:行者123 更新时间:2023-12-03 06:15:43 29 4
gpt4 key购买 nike

假设 Azure 虚拟网络具有两个子网,一个具有带 gRPC 客户端的 Azure 应用服务,另一个具有带 gRPC 服务器的 Azure 容器应用,允许消息传递的正确 URL 和端口是什么?

错误是:

Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="Error connecting to subchannel.", DebugException="System.Net.Sockets.SocketException: Connection timed out")

应用程序在本地使用“http://localhost:5000”运行。容器应用程序有一个应用程序 URL,当我通过 SSH 进入应用程序服务容器时,我可以使用“nslookup”解析该应用程序 URL,因为容器应用程序环境有一个私有(private) DNS。容器应用程序的日志流报告:

Now listening on: http://[::]:5000

设置客户端 channel :

var channel = GrpcChannel.ForAddress("http://myapp.graybay-2091cc5a.uksouth.azurecontainerapps.io:5000");

设置服务器:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, 5000, o => o.Protocols = HttpProtocols.Http2);
options.ListenLocalhost(5000, o => o.Protocols = HttpProtocols.Http2);
});

var app = builder.Build();

app.MapGrpcService<HeartbeatService>();

当超过连接服务器的最大重试次数时,客户端会崩溃。

为什么客户端无法连接到子 channel ?

最佳答案

使用

var channel = GrpcChannel.ForAddress("https://myapp.graybay-2091cc5a.uksouth.azurecontainerapps.io");

要使用http://myapp.graybay-....,您需要在应用程序上设置allowInsecure: true

您还必须在应用程序上安装 transport: http2 才能使 grpc 正常工作。

关于azure - 在 vnet 中使用 gRPC 将 Azure 应用服务连接到 Azure 容器应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76263399/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com