如何使用浏览器JavaScript SDK在AWS托管ES上执行搜索?

时间:2017-01-28 16:25:36

标签: javascript aws-sdk amazon-elasticsearch

我是AWS托管ES的新手。我之前曾在ES上担任本地服务器。我正在尝试使用AWS JavaScript sdk(无Node.js)构建双层Web应用程序。我创建了一个托管ES节点,但无法找到连接搜索和其他添加/更新文档请求的方法。 AWS SDK当前提供与操作相关的类和方法,但不提供搜索和其他类。有人可以帮助我弥合这个差距吗?我找不到任何连接搜索操作的教程或示例代码?

2 个答案:

答案 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凭证是否危险?