From 7f1329306a91cacd1ac9b6bcb70820001fd005b0 Mon Sep 17 00:00:00 2001 From: Austen Collins Date: Sat, 13 Feb 2016 15:15:46 -0800 Subject: [PATCH] ProviderAws: use AWS default env vars w/ back compat support for existing project env vars --- lib/ServerlessProviderAws.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/ServerlessProviderAws.js b/lib/ServerlessProviderAws.js index ec466ed70..49def1928 100644 --- a/lib/ServerlessProviderAws.js +++ b/lib/ServerlessProviderAws.js @@ -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