class EnvConfiguration::Adapter::AwsSsmParameterStoreAdapter
Public Class Methods
new(options={})
click to toggle source
Calls superclass method
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 5 def initialize(options={}) super(options) end
Public Instance Methods
access_key_id()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 19 def access_key_id @options[:access_key_id] || EnvConfiguration.configuration.aws_access_key_id end
client()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 10 def client aws_options = { access_key_id: access_key_id, secret_access_key: secret_access_key, region: region, } @client ||= Aws::SSM::Client.new(@options) end
fetch_configs(&block)
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 47 def fetch_configs(&block) next_token = nil result = {} while(true) fetch_options = { path: path, with_decryption: false, recursive: true, max_results: 10 } fetch_options[:next_token] = next_token if next_token response = client.get_parameters_by_path(fetch_options) items = sanitize_configs(response.parameters, &block) result.merge!(items) next_token = response.next_token break if next_token.nil? end result end
load()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 37 def load # fetch_configs do |item| # ENV["#{item[:name]}"] = item[:value] # end configs = fetch_configs ENV.update(configs) configs end
path()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 31 def path path_value = @options[:path] || EnvConfiguration.configuration.aws_path raise ":path options is required for example /staging" if path_value.nil? path_value end
region()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 27 def region @options[:region] || EnvConfiguration.configuration.aws_region end
sanitize_configs(parameters) { |item| ... }
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 74 def sanitize_configs(parameters, &block) items = {} parameters.each do |param| name = param.name.gsub("#{path}/", '') value = param.value item = {name: name, value: value} items[name] = value yield(item) if block_given? end items end
secret_access_key()
click to toggle source
# File lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb, line 23 def secret_access_key @options[:secret_access_key] || EnvConfiguration.configuration.aws_secret_access_key end