![](/img/trans.png)
[英]Rails app on AWS can't access the ElasticSearch service but Rails console can
[英]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.