在AWS Beanstalk上的Rails应用程序中使用AWS ElasticSearch

时间:2015-11-30 23:13:16

标签: ruby-on-rails ruby amazon-web-services elasticsearch amazon-elastic-beanstalk

我正在尝试切换我的Rails Beanstalk应用程序以使用AWS ElasticSearch代替运行ElasticSearch的EC2实例。我的应用使用serachkick gem。

尝试访问ES服务时,Rails应用程序的请求似乎被阻止。我修改了ES服务的访问策略以允许特定IP,并且运行curl -XGET $ELASTICSEARCH_URL返回预期结果:

{
    "status" : 200,
    "name" : "Man-Killer",
    "cluster_name" : "085567994644:curatiopv2",
    "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"
}

但是,当尝试通过需要由ElasticSearch索引的rails应用程序创建对象时,我收到Faraday::TimeoutError: execution expired错误 - 回顾日志 - 指向我这一行:

from /opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/elasticsearch-transport-1.0.13/lib/elasticsearch/transport/transport/http/faraday.rb:21:in block in perform_request'

这让我相信与ElasticSearch的连接不会从rails应用程序中获得。

任何有过如何在BeanStalk上结合使用AWS ES和Rails的经验的人都可以解释我面临的问题吗?

谢谢!

0 个答案:

没有答案