首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails应用程序中使用Amazons ElasticsearchService

在Rails应用程序中使用Amazons ElasticsearchService
EN

Stack Overflow用户
提问于 2016-11-22 01:29:05
回答 2查看 560关注 0票数 0

我正在为我的Rails api设置Elasticsearch。对于初学者,我在本地设置了Elasticsearch,并且使用elasticsearch gem对我的数据库进行索引和搜索没有任何问题

接下来,我想使用亚马逊网络服务的ElasticsearchService。我已经按照this guide在亚马逊网络服务控制台中设置了服务和域名。

对于我的生活,我想不出如何去连接它。我有一个AWS elasticsearch url,正在尝试点击它,如下所示:

代码语言:javascript
复制
require 'faraday_middleware/aws_signers_v4'

Elasticsearch::Model.client = Elasticsearch::Client.new url: 'https://search-my-cluster-abc123....es.amazonaws.com' do |f|
  f.request :aws_signers_v4,
            credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY'], ENV['AWS_SECRET_ACCESS_KEY']),
            service_name: 'es',
            region: 'us-east-1'
end

我直接从elastic的github页面here中采取了这种方法。然而,我似乎无法连接。

代码语言:javascript
复制
[1] pry(main)> Elasticsearch::Model.client.cluster.health
Faraday::ConnectionFailed: execution expired

我还查看了Amazon Elasticsearch SDK,但它似乎只用于设置域,而不是执行实际的搜索。

感谢您的帮助,谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-11-22 01:40:15

在我问了这个问题后不久,我在searchkik github上找到了答案。

https://github.com/ankane/searchkick/issues/566

确保在您的elasticsearch url前面加上http://

票数 0
EN

Stack Overflow用户

发布于 2020-03-10 15:26:19

我也有同样的问题,但是我使用了新的faraday_middleware-aws-sigv4 gem。我发现我仍然可以使用https,但我需要在URL的末尾添加443端口:

代码语言:javascript
复制
require 'elasticsearch'
require 'faraday_middleware/aws_sigv4'

Elasticsearch::Model.client = Elasticsearch::Client.new(url: 'https://search-my_elasticsearch_service.ap-southeast-2.es.amazonaws.com:443']) do |f|
  f.request :aws_sigv4,
    service: 'es',
    region: 'ap-southeast-2',
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40725992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档