1

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

4

2 回答 2

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,只需将您的读/写请求指向那里,但将其锁定以保持安全

# Example write to Elasticsearch
curl -XPUT "https://yourESUrl.com/movies/movie/1" -d'
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972
}'

如果您需要复习 Elasticsearch 的基础知识,请查看这篇文章

在 Node 中,您可以根据需要使用 Requests 模块来执行这些命令。

于 2017-01-29T23:08:46.647 回答
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 凭证是否不危险?

于 2017-01-30T10:34:41.380 回答