如何让 Vanity 连接到 Elasticache 实例
How do I get Vanity to connect to Elasticache instance
我正在使用 Vanity gem 进行 A/B 测试,它在本地运行良好。
在我们的 EC2 实例上 rails 拒绝在启用 Vanity 时启动。
通过为我的本地 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'
看起来这是 Vanity 2.0 中的回归,在发布修复程序之前,您可以将 Vanity 配置中的 connection
键替换为 url
键,例如:
staging:
adapter: redis
url: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0
这些密钥被传递到各个适配器并且 ruby Redis client 接受 url
。
我正在使用 Vanity gem 进行 A/B 测试,它在本地运行良好。
在我们的 EC2 实例上 rails 拒绝在启用 Vanity 时启动。
通过为我的本地 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'
看起来这是 Vanity 2.0 中的回归,在发布修复程序之前,您可以将 Vanity 配置中的 connection
键替换为 url
键,例如:
staging:
adapter: redis
url: redis://my-name.id.0001.use1.cache.amazonaws.com:6379/0
这些密钥被传递到各个适配器并且 ruby Redis client 接受 url
。