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 ifprofile
option specified - Support
AWS_TIMEOUT
environment variable to enforce a maximum timeout for all AWS SDK operations - Honors the
AWS_DEFAULT_PROFILE
andAWS_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
npm install aws-config
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
});
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();