如何让Vanity连接到Elasticache实例

时间:2016-01-11 17:06:17

标签: ruby-on-rails redis vanity

我正在使用Vanity gem进行A / B测试,它在本地运行良好。

在我们的EC2实例上,当启用虚荣时,rails拒绝启动。

我已经能够通过为我的本地Redis安装提供不正确的详细信息来在本地重新创建该问题。

我已经尝试了几种设置的排列,我希望这两种设置可以使用;

staging:
  adapter: redis
  connection: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0

staging:
  adapter: redis
  connection: redis://my-name.id.0001.use1.cache.amazonaws.com:6379

当我登录服务器时,我可以运行redis-cli -h my-name.id.0001.use1.cache.amazonaws.com并立即连接。

我很确定这应该可行,因为this person能够使用Heroku设置(只使用我上面使用的外部URL)

错误消息

以下是部署服务器时收到的错误消息。 job_options.rb是我的测试实验,它在开发中运行良好。

/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:24:in `eval'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:24:in `block in load'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:22:in `instance_eval'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:22:in `load'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:248:in `block in set_experiments'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:247:in `each'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:247:in `set_experiments'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/playground.rb:26:in `initialize'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:133:in `new'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:133:in `load!'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/vanity.rb:123:in `playground'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:219:in `rescue in call_redis_with_failover'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:216:in `call_redis_with_failover'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/adapters/redis_adapter.rb:105:in `set_experiment_created_at'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/base.rb:159:in `save'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/ab_test.rb:451:in `save'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/definition.rb:21:in `define'
/shared/bundle/ruby/2.2.0/gems/vanity-2.0.0/lib/vanity/experiment/ab_test.rb:571:in `ab_test'
./experiments/job_options.rb:1:in `new_binding'

1 个答案:

答案 0 :(得分:1)

看起来这是Vanity 2.0中的回归,在修复发布之前,您只需用connection键替换虚荣配置中的url键,例如:

staging:
  adapter: redis
  url: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0

这些密钥会传递到各个适配器,而ruby Redis client会接受url

相关问题