Skip to content

nodef/extra-awsconfig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Get ready to use AWS Config from arguments and environment variables.

Do you want to:

  • Have most of you AWS Config loaded from environment variables?
  • Handle JSON shared credentials and config files?
  • Get AWS Config from arguments?


Setup

  1. Run npm install -g extra-awsconfig in console.
  2. To install this as a package use npm install extra-awsconfig.


Console

awsconfig
# get default AWS config

awsconfig --access_key_id "..." --secret_access_key "..."
awsconfig --accessKeyId "..." --secretAccessKey "..."
awsconfig --id "..." --key "..."
# get AWS config with custom credentials
## all commands are equivalent

awsconfig --region "us-west-1"
# get AWS config with region="us-west-1"

awsconfig --sslEnabled=0
# get AWS config with SSL disabled
## enable SSL with simply --sslEnabled

awsconfig --profile dev
# get AWS config with "dev" profile
## credential and config associated with the profile is loaded

awsconfig --credentialsFile credentials.json
# use a custom credentials file
## credentials/config file can be INI for JSON

Reference

awsconfig [options]
# -> AWS config as JSON

# Options:
# --help: show this help
# -i, --id:       set your AWS access key ID
# -k, --key:      set your AWS secret access key
# -e, --endpoint: set the endpoint to send service requests to
# -r, --region:   set the region to send service requests to (us-east-1)
# -p, --profile:  set the AWS config profile to use (default)
# -f, --file:             set custom AWS config file path
# -cf, --credentialsFile: set custom AWS credentails file path
# ...: for more options check AWS Config options below

# Environment variables:
$AWS_ACCESS_KEY_ID           # set your default AWS access key ID
$AWS_SECRET_ACCESS_KEY       # set your default AWS secret access key
$AWS_DEFAULT_REGION          # set default region to send service requests to (us-east-1)
$AWS_PROFILE                 # set default AWS config profile to use (default)
$AWS_SHARED_CREDENTIALS_FILE # set default AWS credentails file path (~/.aws/credentials)
$AWS_CONFIG_FILE             # set default AWS config file path (~/.aws/config)

# Credential/Config file (INI):
[default]
aws_access_key_id = ...
aws_secret_access_key = ...
region = us-east-1
...

# Credential/Config file (JSON, default profile):
{
  "accessKeyId": "...",
  "secretAccessKey": "...",
  "region": "us-east-1",
  ...
}

# Credential/Config file (JSON, multi-profile):
{
  "profiles": true,
  "default": {
    "accessKeyId": "...",
    "secretAccessKey": "...",
    "region": "us-east-1",
    ...
  },
  "dev": { ... },
  ...
}

See AWS Config options.



Package

const awsconfig = require('extra-awsconfig');

awsconfig();
// get default AWS config

awsconfig({accessKeyId: '...', secretAccessKey: '...'});
// get AWS config with custom credentials

awsconfig({region: 'us-west-1'});
// get AWS config with region="us-west-1"

awsconfig({sslEnabled: false});
// get AWS config with SSL disabled

awsconfig({profile: 'dev'});
// get AWS config with "dev" profile

awsconfig({credentialsFile: 'credentials.json'});
// use a custom credentials file
/// credentials/config file can be INI for JSON

var A = process.argv, o = {};
for(var i=0, I=A.length; i<I;)
  i = awsconfig.options(o, A[i], A, i);
awsconfig(o);
// get AWS config from arguments

Reference

const awsconfig = require('extra-awsconfig');

awsconfig.options(options, argument_key, arguments, index);
// options: target object to store AWS config options
// argument_key: name of the argument (ex: "--help")
// arguments: arguments array (ex: process.argv)
// index: current index in arguments array (ex: i=2...args.length)
// -> new index in arguments array


awsconfig(options);
// options: custom AWS config options
// -> AWS config options

// Default options:
options = {
  file: '~/.aws/config',                 // set custom AWS config file path
  credentialsFile: '~/.aws/credentials', // set custom AWS credentails file path
  ... /* for more options check AWS Config options below */
};

See AWS Config options.



Similar

Do you need anything similar?

Suggestions are welcome. Please create an issue.



nodef

References: AWS Config, AWS CLI environment variables.