module Aws::Rails

def self.add_action_mailer_delivery_method(name = :ses, options = {})

Parameters:
  • options (Hash) -- The options you wish to pass on to the
  • name (Symbol) -- The name of the ActionMailer delivery method to
def self.add_action_mailer_delivery_method(name = :ses, options = {})
  ActiveSupport.on_load(:action_mailer) do
    add_delivery_method(name, Aws::Rails::Mailer, options)
  end
end

def self.instrument_sdk_operations

name of: put_object.S3.aws
..aws. For example, S3's put_object has an event
client operations. Each operation will produce an event with a name:
Adds ActiveSupport Notifications instrumentation to AWS SDK
def self.instrument_sdk_operations
  Aws.constants.each do |c|
    m = Aws.const_get(c)
    if m.is_a?(Module) && m.const_defined?(:Client) &&
       m.const_get(:Client).superclass == Seahorse::Client::Base
      m.const_get(:Client).add_plugin(Aws::Rails::Notifications)
    end
  end
end

def self.log_to_rails_logger

Configures the AWS SDK for Ruby's logger to use the Rails logger.
def self.log_to_rails_logger
  Aws.config[:logger] = ::Rails.logger
  nil
end

def self.use_rails_encrypted_credentials

Configures the AWS SDK with credentials from Rails encrypted credentials.
def self.use_rails_encrypted_credentials
  # limit the config keys we merge to credentials only
  aws_credential_keys = %i[access_key_id secret_access_key session_token]
  Aws.config.merge!(
    ::Rails.application
      .try(:credentials)
      .try(:aws)
      .to_h.slice(*aws_credential_keys)
  )
end