我是AWS托管ES的新手。我之前曾在ES上担任本地服务器。我正在尝试使用AWS JavaScript sdk(无Node.js)构建双层Web应用程序。我创建了一个托管ES节点,但无法找到连接搜索和其他添加/更新文档请求的方法。 AWS SDK当前提供与操作相关的类和方法,但不提供搜索和其他类。有人可以帮助我弥合这个差距吗?我找不到任何连接搜索操作的教程或示例代码?
答案 0 :(得分:0)
不幸的是,SDK没有为您提供读/写的方法。它只是完成了HTTP请求的基本方式,但您应该锁定群集。
这是一篇关于如何锁定群集的好文章: https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/
例如,您可以设置EC2实例并授予EC2 IP访问弹性搜索群集的权限。然后,在AWS的Elasticsearch页面上,您应该看到一个端点URL,只需将您的读/写请求指向那里,但将其锁定到stay safe。
# Example write to Elasticsearch
curl -XPUT "https://yourESUrl.com/movies/movie/1" -d'
{
"title": "The Godfather",
"director": "Francis Ford Coppola",
"year": 1972
}'
如果您需要了解Elasticsearch的基础知识,请查看此article。
在Node中,如果愿意,可以使用Requests模块执行这些命令。
答案 1 :(得分:0)
Elasticsearch.js符合https://github.com/elastic/elasticsearch-js
Node.js和浏览器的官方低级Elasticsearch客户端。
您可以在浏览器中使用它连接到经典的Elasticsearch解决方案。
AWS Elasticsearch要求您签署您的请求。在节点中,您可以使用https://github.com/TheDeveloper/http-aws-es。它是用ES6编写的。
这不是您理想的解决方案,但您可以尝试查看源代码,了解连接器的编码方式。 https://github.com/TheDeveloper/http-aws-es/blob/master/connector-es6.js
顺便说一句,直接在您的客户端公开您的aws凭证是否危险?