module Stax::Ssm
Public Class Methods
included(thor)
click to toggle source
# File lib/stax/mixin/ssm.rb, line 7 def self.included(thor) thor.desc(:ssm, 'SSM subcommands') thor.subcommand(:ssm, Cmd::Ssm) end
Public Instance Methods
ssm_parameter_delete(*names)
click to toggle source
# File lib/stax/mixin/ssm.rb, line 45 def ssm_parameter_delete(*names) Aws::Ssm.delete(names: names.map { |name| ssm_parameter_name(name) }) end
ssm_parameter_get(name)
click to toggle source
# File lib/stax/mixin/ssm.rb, line 32 def ssm_parameter_get(name) Aws::Ssm.get(names: [ssm_parameter_name(name)], with_decryption: true).first&.value end
ssm_parameter_name(name)
click to toggle source
# File lib/stax/mixin/ssm.rb, line 16 def ssm_parameter_name(name) [ssm_parameter_path, name].join('/') end
ssm_parameter_path()
click to toggle source
# File lib/stax/mixin/ssm.rb, line 12 def ssm_parameter_path @_ssm_parameter_path ||= prepend('/', [app_name, branch_name, class_name].join('/')) end
ssm_parameter_put(name, value, opt = {})
click to toggle source
# File lib/stax/mixin/ssm.rb, line 20 def ssm_parameter_put(name, value, opt = {}) Aws::Ssm.put( { name: ssm_parameter_name(name), value: value, type: :SecureString, # key_id: options[:key], overwrite: true, }.merge(opt) ) end
ssm_parameter_tmpfile(name)
click to toggle source
get a parameter from the store to a Tmpfile
# File lib/stax/mixin/ssm.rb, line 37 def ssm_parameter_tmpfile(name) Tempfile.new(stack_name).tap do |file| file.write(ssm_parameter_get(name)) File.chmod(0400, file.path) file.close end end
ssm_run_shellscript(*cmd)
click to toggle source
run a command on stack instances
# File lib/stax/mixin/ssm.rb, line 50 def ssm_run_shellscript(*cmd) Aws::Ssm.run( document_name: 'AWS-RunShellScript', targets: [{key: 'tag:aws:cloudformation:stack-name', values: [stack_name]}], parameters: {commands: cmd} )&.command_id.tap(&method(:puts)) end