#!/usr/bin/env ruby require 'aws-sdk' raise "Usage: #{$0} path" if ARGV[0].nil? PATH = ARGV[0] SSM = Aws::SSM::Client.new def get_parameters_by_path(next_token = nil) params = { path: PATH, recursive: true, with_decryption: true, } params[:next_token] = next_token unless next_token.nil? SSM.get_parameters_by_path(params) end def parameters next_token = nil while true response = get_parameters_by_path(next_token) break if response.parameters.empty? response.parameters.each { |parameter| yield parameter } next_token = response.next_token break if next_token.nil? end end def print_env_vars(parameter) env_name = File.basename(parameter.name) env_value = parameter.value puts "#{env_name}=\"#{env_value}\"" end parameters { |p| print_env_vars p }