¿Cómo hablar con el servicio aws elasticsearch usando el cliente java elástico?
He configurado un servidor elasticsearch usandoServicio de búsqueda elástica de AWS (No EC2). Me dio un punto finalhttps://xxx-xxxxxxxx.us-west-2.es.amazonaws.com/ y si hago clic en este punto final (tenga en cuenta que no hay un puerto especificado) puedo obtener el esperado
{
status: 200,
name: "Mastermind",
cluster_name: "xxxx",
version: {
number: "1.5.2",
build_hash: "yyyyyy",
build_timestamp: "2015-04-27T09:21:06Z",
build_snapshot: false,
lucene_version: "4.10.4"
},
tagline: "You Know, for Search"
}
La pregunta es ¿cómo consigo esto a través del cliente java elasticsearch sin un número de puerto? El código de muestra que obtengo es
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300));
Si uso este código y simplemente reemplazo "host1" con mi punto final, obtendré "NoNodeAvailableException"
ps: la versión del cliente de Java que estoy usando es 2.0.0.
Editar Finalmente decidí ir conBroma, un cliente REST de terceros. Pero lo que Brooks respondió a continuación también es muy útil: AWS utiliza el puerto 80 para http y 443 para https. El bloqueador para mí fue el firewall, supongo.
Edit2 La documentación del servicio de AWS ES dice explícitamente:
El servicio admite HTTP en el puerto 80, pero no admite el transporte TCP.