Sha256: 14a4eaf3f6e6896a1016ee362eec75e701eb95dc346001b4b241303f78f30997

Contents?: true

Size: 944 Bytes

Versions: 3

Compression:

Stored size: 944 Bytes

Contents

module Jets
  class AwsInfo
    extend Memoist
    include AwsServices

    def region
      return 'us-east-1' if ENV['TEST']

      region = nil

      # First try to get it from the ~/.aws/config
      region = `aws configure get region`.strip rescue nil
      return region if region

      # Second try the metadata endpoint, should be available on AWS Lambda environment
      # https://stackoverflow.com/questions/4249488/find-region-from-within-an-ec2-instance
      begin
        az = `curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
        region = az.strip.chop # remove last char
      rescue
      end
      return region if region

      ENV['JETS_AWS_REGION'] || 'us-east-1' # default if all else fails
    end
    memoize :region

    # aws sts get-caller-identity
    def account
      return '123456789' if ENV['TEST']
      sts.get_caller_identity.account
    end
    memoize :account
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jets-0.6.2 lib/jets/aws_info.rb
jets-0.6.1 lib/jets/aws_info.rb
jets-0.6.0 lib/jets/aws_info.rb