繁体   English   中英

Rails上的Elasticsearch Service(AWS)-超时

[英]Elasticsearch Service (AWS) on Rails - Timeout

[更新]我只是为这种情况添加了当前端点(几天了)

我将ElasticSearch与Rails结合使用,并使用了以下宝石:-elasticsearch-rails-elasticsearch-model

当我在开发中(我的计算机)运行elasticsearch时,我的设置就可以了。 但是,当我将端点用于Elasticsearch AWS时,此消息会出现在我的rails应用程序中:

“ Faraday :: TimeoutError:连接超时-为search-production-shipit-45cu5wkligv2ythnfozcnthsoi.us-east-1.es.amazonaws.com端口9200连接”

我在初始化器中添加了此文件:elasticsearch.rb

Elasticsearch::Model.client = Elasticsearch::Client.new host: "search-production-shipit-45cu5wkligv2ythnfozcnthsoi.us-east-1.es.amazonaws.com"

当我输入端点时,请显示elasticsearch信息。

这是我在Amazon Elasticsearch中的政策(此示例任何人都可以连接)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:090358380644:domain/production-shipit/*"
    }
  ]
} 

另一方面,当我执行此命令时:

curl -XGET 'search-production-shipit-45cu5wkligv2ythnfozcnthsoi.us-east-1.es.amazonaws.com' 

端点返回以下内容:

{
  "status" : 200,
  "name" : "Meld",
  "cluster_name" : "090358380644:production-shipit",
  "version" : {
    "number" : "1.5.2",
    "build_hash" : "62ff9868b4c8a0c45860bebb259e21980778ab1c",
    "build_timestamp" : "2015-04-27T09:21:06Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

Amazon托管的Elasticsearch将默认端口从9200更改为默认http / https端口(80和443)-请注意curl命令如何不指定端口

另一方面,elasticsearch ruby​​库假定elasticsearch的默认值为9200。您可以通过指定URL(使用url选项)或使用

Elasticsearch::Client.new hosts: [
  { host: 'some-host',
    port: '443',
    scheme: 'https'
  } ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM