Подтвердить что ты не робот

Клиент Elastic Transport на AWS Managed ElasticSearch

Я пытаюсь использовать AWS Managed ElasticSearch для моего проекта.

Я следил за https://aws.amazon.com/blogs/aws/new-amazon-elasticsearch-service/, и я могу запустить экземпляр, и это успешно. Но я не могу подключиться к одному экземпляру из своей службы, используя транспортный клиент elasticsearch.

Я знаю, что транспортный клиент должен подключиться к порту 9300, и этот порт я не могу включить через консоль aws.

Вот код, который я использую для подключения, который успешно подключается к моей настройке гибкого поиска на машине ec2 на порте 9300.

ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder();
                    settings.put("cluster.name", "my-cluster-name")
                            .put("client.transport.nodes_sampler_interval", "15s")
                            .put("client.transport.ping_timeout", "15s")
                            .put("client.transport.sniff", true)
                            .put("client.transport.ignore_cluster_name", false).build();
                    client = new TransportClient(settings)
                        .addTransportAddress(
                            new InetSocketTransportAddress(
                                        env.getProperty("elastic-host-url-provided-by-aws",80)
                            ));

Я получаю исключение

org.elasticsearch.client.transport.NoNodeAvailableException: ни один из доступны сконфигурированные узлы: [] в org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305)   в org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200)   в org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106)   в org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:98)

Я подозреваю, что эта ошибка связана с тем, что я подключаю TransportClient по HTTP-порту. Но я не знаю, что такое TCP-порт для ускоренного поиска экстази. Я искал в документах aws, и я не мог найти их. Если некоторые из них использовали TransportClient для подключения с Amazon ES, дайте мне знать.

NB: я проверил, что версия javas java javascript использование такого же, как и у сервера. И из моей системы я могу для доступа к Kibana и ES HTTP PORTS без каких-либо проблем.

4b9b3361

Ответ 1

Связанный с AWS форум ссылка.

Здесь указаны ограничения для службы AWS ElasticSearch:

Транспортировка TCP Служба поддерживает HTTP на порту 80, но не поддержка транспорта TCP.

Ответ 2

Раздел документации о недостающей поддержке транспорта TCP для доменов AWS Elasticsearch 5.x можно найти здесь:

Транспортировка TCP

Служба поддерживает HTTP на порту 80, но не поддерживает транспорт TCP.