Help language development. Donate to The Perl Foundation

AWS::Session cpan:HANENKAMP last updated on 2018-03-16



AWS::Session - Common data useful for accessing and configuring AWS APIs


use AWS::Session;
use AWS::Credentials;

my $session      =
    profile => 'my-profile',

# Read configuration from the current environment
my $profile      = $session.profile;
my $region       = $session.region;

# Fetch credentials from the current environment
my $credentials = load-credentials($session);
my $access-key  = $credentials.access-key;
my $secret-key  = $credentials.secret-key;
my $token       = $credentials.token;

# Read the AWS configuration file
my %config       = $session.get-configuration;
my %profile-conf = $session.get-profile-configuration('default');
my %current-conf = $session.get-current-configuration;

# Read the AWS credentials file
my %cred         = $session.get-credentials;
my %profile-cred = $session.get-profile-credentials('default');
my %current-cred = $session.get-current-credentials;


AWS clients share some common configuration data. This provides modules for loading that data.

Hardcoded credentials are a terrible idea when using AWS. These modules also help to make it easy to pull credentials from the current environment.

The recommended way to get credentials is to use the load-credentials() subroutine. This takes or automatically constructs an AWS::Session object that represents the state of configuration in the local environment and uses that and other aspects of the local environment to locate the credentials that should be used by this service.

# Use a newly constructed session
    my $credentials = load-credentials();

# OR if you already have a session object
    use AWS::Session;
    my $session =<production>);
    my $credentials = load-credentials($session);

See the POD for details, but all of this is highly configurable.