ProviderAws: use AWS default env vars w/ back compat support for existing project env vars

This commit is contained in:
Austen Collins 2016-02-13 15:15:46 -08:00
parent 11b9b8ce0c
commit 7f1329306a

View File

@ -45,8 +45,8 @@ class ServerlessProviderAws {
// TODO: Default should be AWS_PROFILE, not SERVERLESS_AWS_PROFILE. ADD IN BACKWARD COMPAT SUPPORT
// Set ENV var prefix - defaults to SERVERLESS_
this._config.envPrefix = (process.env.SERVERLESS_ENV_PREFIX || 'SERVERLESS').toUpperCase();
if (this._config.envPrefix.charAt(this._config.envPrefix.length - 1) !== '_') {
this._config.envPrefix = (process.env.SERVERLESS_ENV_PREFIX || '').toUpperCase();
if (this._config.envPrefix && this._config.envPrefix.length && this._config.envPrefix.charAt(this._config.envPrefix.length - 1) !== '_') {
this._config.envPrefix = this._config.envPrefix + '_';
}
@ -106,33 +106,38 @@ class ServerlessProviderAws {
let profile = process.env[this._config.envPrefix + 'AWS_PROFILE_' + stage];
profile = (this._config.profilePrefix ? this._config.profilePrefix + '_' + profile : profile).toLowerCase();
credentials = this.getProfile(profile);
} else if (process.env[this._config.envPrefix + 'AWS_PROFILE'] || process.env[this._config.envPrefix + 'ADMIN_AWS_PROFILE']) {
} else if (process.env[this._config.envPrefix + 'AWS_PROFILE'] || process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_PROFILE']) {
// Profile Plain
let profile = process.env[this._config.envPrefix + 'AWS_PROFILE'] || process.env[this._config.envPrefix + 'ADMIN_AWS_PROFILE'];
let profile = process.env[this._config.envPrefix + 'AWS_PROFILE'] || process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_PROFILE'];
profile = (this._config.profilePrefix ? this._config.profilePrefix + '_' + profile : profile).toLowerCase();
credentials = this.getProfile(profile);
} else if (process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID_' + stage] && process.env[this._config.envPrefix + 'SECRET_ACCESS_KEY_' + stage]) {
} else if (process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID_' + stage] && process.env[this._config.envPrefix + 'AWS_SECRET_ACCESS_KEY_' + stage]) {
// Access Keys w/ Stage Suffix
credentials = {
accessKeyId: process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID_' + stage],
secretAccessKey: process.env[this._config.envPrefix + 'SECRET_ACCESS_KEY_' + stage]
};
} else if ((process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID'] && process.env[this._config.envPrefix + 'SECRET_ACCESS_KEY'])
|| process.env[this._config.envPrefix + 'ADMIN_AWS_ACCESS_KEY_ID'] && process.env[this._config.envPrefix + 'ADMIN_AWS_SECRET_ACCESS_KEY']) {
} else if ((process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID'] && process.env[this._config.envPrefix + 'AWS_SECRET_ACCESS_KEY'])
|| process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_ACCESS_KEY_ID'] && process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_SECRET_ACCESS_KEY']) {
// Access Keys Plain
credentials = {
accessKeyId: process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID'] || process.env[this._config.envPrefix + 'ADMIN_AWS_ACCESS_KEY_ID'],
secretAccessKey: process.env[this._config.envPrefix + 'SECRET_ACCESS_KEY'] || process.env[this._config.envPrefix + 'ADMIN_AWS_SECRET_ACCESS_KEY']
accessKeyId: process.env[this._config.envPrefix + 'AWS_ACCESS_KEY_ID'] || process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_ACCESS_KEY_ID'],
secretAccessKey: process.env[this._config.envPrefix + 'SECRET_ACCESS_KEY'] || process.env[this._config.envPrefix + 'SERVERLESS_ADMIN_AWS_SECRET_ACCESS_KEY']
};
} else if (process.env[this._config.envPrefix + 'AWS_SESSION_TOKEN_' + stage]) {
// Session Token w/ Stage Suffix
credentials = {
sessionToken: process.env[this._config.envPrefix + 'AWS_SESSION_TOKEN_' + stage]
};
} else if (process.env[this._config.envPrefix + 'AWS_SESSION_TOKEN_' + stage]) {
// Session Token Plain