Module: Stax::Ssm
- Defined in:
- lib/stax/mixin/ssm.rb
Class Method Summary collapse
Instance Method Summary collapse
- #ssm_parameter_delete(*names) ⇒ Object
- #ssm_parameter_get(name) ⇒ Object
- #ssm_parameter_name(name) ⇒ Object
- #ssm_parameter_path ⇒ Object
- #ssm_parameter_put(name, value, opt = {}) ⇒ Object
-
#ssm_parameter_tmpfile(name) ⇒ Object
get a parameter from the store to a Tmpfile.
-
#ssm_run_shellscript(*cmd) ⇒ Object
run a command on stack instances.
Class Method Details
Instance Method Details
#ssm_parameter_delete(*names) ⇒ Object
45 46 47 |
# 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) ⇒ Object
32 33 34 |
# 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) ⇒ Object
16 17 18 |
# File 'lib/stax/mixin/ssm.rb', line 16 def ssm_parameter_name(name) [ssm_parameter_path, name].join('/') end |
#ssm_parameter_path ⇒ Object
12 13 14 |
# 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 = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# 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) ⇒ Object
get a parameter from the store to a Tmpfile
37 38 39 40 41 42 43 |
# 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) ⇒ Object
run a command on stack instances
50 51 52 53 54 55 56 |
# 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 |