Skip to content

Instantly share code, notes, and snippets.

@MrTin
Forked from jrgifford/Gemfile
Last active June 2, 2017 15:18
Show Gist options
  • Save MrTin/0ac4c38a75a4eb3b65ed740197a3a539 to your computer and use it in GitHub Desktop.
Save MrTin/0ac4c38a75a4eb3b65ed740197a3a539 to your computer and use it in GitHub Desktop.
Using Amazon Elasticsearch securely (signed requests) with Rails & searchkick gem on Heroku.
# config/initializers/elasticsearch.rb
# ensure you set AWS_ES_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
# change region as needed
require 'patron'
require 'faraday_middleware/aws_signers_v4'
class AmazonElasticSearchClient
def self.client
return Elasticsearch::Client.new(url: ENV['AWS_ELASTICSEARCH_URL']) do |f|
f.request_timeout = 15
f.request :aws_signers_v4,
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
service_name: ENV['AWS_ELASTICSEARCH_SERVICE_NAME'],
region: ENV['AWS_REGION']
end
end
end
Elasticsearch::Model.client = AmazonElasticSearchClient.client unless ENV["AWS_ELASTICSEARCH_URL"].blank?
gem 'elasticsearch', '>= 1.0.15'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'patron'
gem 'faraday_middleware-aws-signers-v4'
gem 'searchkick'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment