class Conrad::Emitters::AmazonBase
Base class for AWS-based emitters
Attributes
access_key_id[RW]
@deprecated Will be removed in 3.0.0, no migration path @return [String, nil] the configured AWS Access key ID
client[RW]
@return [Aws::SQS::Client] the created client
region[RW]
@return [String, nil] the configured region
secret_access_key[RW]
@deprecated Will be removed in 3.0.0, no migration path @return [String, nil] the configured AWS secret access key
Public Class Methods
new(args = {})
click to toggle source
@param queue_url [String] the queue to send messages to @param region [String] region the queue lives in @param access_key_id
[String] AWS Acesss Key ID @param secret_access_key
[String] AWS Secret Access Key
@raise [InvalidAwsCredentials] if access_key_id
or secret_access_key
are
not provided AND the running environment does not have valid AWS credentials
@raise [Aws::Errors::MissingRegionError] if region is not provided and
also not set via an allowed AWS environment variable
Calls superclass method
# File lib/conrad/emitters/amazon_base.rb, line 34 def initialize(args = {}) super create_client(region: region, access_key_id: access_key_id, secret_access_key: secret_access_key) end
Private Instance Methods
create_client(region:, access_key_id:, secret_access_key:)
click to toggle source
# File lib/conrad/emitters/amazon_base.rb, line 41 def create_client(region:, access_key_id:, secret_access_key:) if secret_access_key.nil? || access_key_id.nil? validate_implicit_credentials @client = self.class.client_class.new({ region: region }.compact) else @client = self.class.client_class.new({ region: region, access_key_id: access_key_id, secret_access_key: secret_access_key }.compact) end end
validate_implicit_credentials()
click to toggle source
# File lib/conrad/emitters/amazon_base.rb, line 55 def validate_implicit_credentials raise Conrad::InvalidAwsCredentials unless Aws::CredentialProviderChain.new.resolve&.set? end