如何使用Elastic Java Client与AWS Elasticsearch Service对话?

如何使用Elastic Java Client与AWS Elasticsearch Service对话?,第1张

如何使用Elastic Java Client与AWS Elasticsearch Service对话?

信不信由你,AWS不会使用9200和9300启动Elasticsearch。它是通过普通的旧端口80启动的。

因此,为了演示,请尝试…

curl -XPOST "http://xxx-xxxxxxxx.us-west-2.es.amazonaws.com:80/myIndex/myType" -d '["name":"Edmond"}'

要么

curl -XPOST "https://xxx-xxxxxxxx.us-west-2.es.amazonaws.com:443/myIndex/myType" -d '["name":"Edmond"}'

它的响应应为:{“ index”:“ myIndex”,“ _ type”:“ myType”,“ _ id”:“ SOME_ID #”,“ _version”:1,“ created”:true}

签入Kibana,您会发现它在那里。

因此,在您的代码中,它应该是:

Client client = TransportClient.builder().build()    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("xxx-xxxxxxxx.us-west-2.es.amazonaws.com"), 80));

不幸的是,我不了解如何使用传输客户端通过SSL / HTTPS传输加密。您可以尝试使用常规的REST调用来代替使用JERSEY。

最后,确保正确配置了Elasticsearch访问策略。类似于以下内容:

{  "Version": "2012-10-17",  "Statement": [    {      "Sid": "",      "Effect": "Allow",      "Principal": "*",      "Action": "es:*",      "Resource": "arn:aws:es:us-east-1:yyyyyyy:domain/myDomain/*"    },    {      "Sid": "",      "Effect": "Allow",      "Principal": "*",      "Action": "es:*",      "Resource": "arn:aws:es:us-east-1:yyyyyyyyy:domain/myDomain"    }  ]}

注意: 上面的访问策略是完全开放的,不建议在远程生产环境中使用。请注意…



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4939404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存