Skip to content

Latest commit

 

History

History
61 lines (49 loc) · 2.75 KB

README.md

File metadata and controls

61 lines (49 loc) · 2.75 KB

NPM Version NPM Downloads Build Status Test Coverage

Reduce boilerplate code when configuring the AWS Node.js SDK. http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html

Takes care of the following:

  • Handles corporate proxy via https-proxy-agent if HTTPS_PROXY environment variable exists.
  • Utilize a named profile from .aws/credentials file if profile option specified
  • Support AWS_TIMEOUT environment variable to enforce a maximum timeout for all AWS SDK operations
  • Honors the AWS_DEFAULT_PROFILE and AWS_DEFAULT_REGION environment variables used by the AWS CLI.
  • Honors the AWS_WEB_IDENTITY_TOKEN_FILE environment variable used for web token based authentication for kubernetes service accounts

Installation

npm install aws-config

Options

awsConfig({
  region: 'us-east-1'                  // explicitly set AWS region
  sslEnabled: true,                    // override whether SSL is enabled
  maxRetries: 3,                       // override the number of retries for a request
  accessKeyId: 'your_aws_access_key',  // can omit access key and secret key
  secretAccessKey: 'your_secret_key'   // if relying on a profile or IAM
  profile: 'profile_name',             // name of profile from ~/.aws/credentials
  timeout: 15000                       // optional timeout in ms. Will use AWS_TIMEOUT
});

Usage

var AWS = require('aws-sdk');
var awsConfig = require('aws-config');

// demonstrating different sample usage at the individual service level
var s3 = new AWS.S3(awsConfig({accessKeyId: '123', secretAccessKey: 'abc'}));
var ec2 = new AWS.EC2(awsConfig({profile: 'aws-profile-name'}));
var dynamo = new AWS.DynamoDB(awsConfig({timeout: 5000}));

// you can also set the AWS config globally and use empty constructors on
// individual services.
AWS.config = awsConfig();

var s3 = new AWS.S3();