Мне не удается открыть соединение с кластером RabbitMQ в AWS Lambda. Я могу подключиться к кластеру, используя стандартную библиотеку .Net, размещенную в IIS. Я получаю BrokerUnreachableException с InnerException SocketException с ErrorCode -1 при хостинге в AWS Lambda.
Сведения об исключении
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> System.Net.Sockets.SocketException: Unknown error -1
at RabbitMQ.Client.EndpointResolverExtensions.SelectOne[T](IEndpointResolver resolver, Func`2 selector)
at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
--- End of inner exception stack trace ---
at RabbitMQ.Client.ConnectionFactory.CreateConnection(IEndpointResolver endpointResolver, String clientProvidedName)
at PeopleGateway.Controllers.SalesforcePersonaNotificationsController.<GetAmpqBdsAsync>d__3.MoveNext()
VPC настроен, и я могу открыть сокет для того же хоста и порта в функции Lambda, но не могу использовать RabbitMQ Client.
При локальном запуске того же кода с использованием IIS Express соединение открывается нормально.
Пример кода
var cf = new ConnectionFactory();
cf.Password = "password";
cf.UserName = "username";
cf.Port = 5672;
string[] allHosts = new string[] { "hostname1.domain.com", "hostname2.domain.com" };
var endpoints = allHosts.Select(h => new AmqpTcpEndpoint(h, cf.Port)).ToList();
var conn = cf.CreateConnection(endpoints);