diff --git a/lib/plugins/aws/invokeLocal/index.js b/lib/plugins/aws/invokeLocal/index.js index b695bea1d..ea219cb5f 100644 --- a/lib/plugins/aws/invokeLocal/index.js +++ b/lib/plugins/aws/invokeLocal/index.js @@ -434,13 +434,27 @@ class AwsInvokeLocal { ]).then(results => { const imageName = results[1]; const artifactPath = results[2]; + + const lambdaName = this.options.functionObj.name; + const memorySize = + Number(this.options.functionObj.memorySize) || + Number(this.serverless.service.provider.memorySize) || + 1024; + const lambdaDefaultEnvVars = { + AWS_REGION: this.provider.getRegion(), + AWS_DEFAULT_REGION: this.provider.getRegion(), + AWS_LAMBDA_LOG_GROUP_NAME: this.provider.naming.getLogGroupName(lambdaName), + AWS_LAMBDA_FUNCTION_NAME: lambdaName, + AWS_LAMBDA_FUNCTION_MEMORY_SIZE: memorySize, + }; const configuredEnvVars = this.getConfiguredEnvVars(); const envVarsFromOptions = this.getEnvVarsFromOptions(); - const envVars = _.merge(configuredEnvVars, envVarsFromOptions); + const envVars = _.merge(lambdaDefaultEnvVars, configuredEnvVars, envVarsFromOptions); const envVarsDockerArgs = _.flatMap(envVars, (value, key) => [ '--env', `${key}=${value}`, ]); + const dockerArgsFromOptions = this.getDockerArgsFromOptions(); const dockerArgs = _.concat( ['run', '--rm', '-v', `${artifactPath}:/var/task`], diff --git a/lib/plugins/aws/invokeLocal/index.test.js b/lib/plugins/aws/invokeLocal/index.test.js index bdfa3dc97..49c882178 100644 --- a/lib/plugins/aws/invokeLocal/index.test.js +++ b/lib/plugins/aws/invokeLocal/index.test.js @@ -1164,6 +1164,16 @@ describe('AwsInvokeLocal', () => { '-v', 'servicePath:/var/task', '--env', + 'AWS_REGION=us-east-1', + '--env', + 'AWS_DEFAULT_REGION=us-east-1', + '--env', + 'AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/hello', + '--env', + 'AWS_LAMBDA_FUNCTION_NAME=hello', + '--env', + 'AWS_LAMBDA_FUNCTION_MEMORY_SIZE=1024', + '--env', 'providerVar=providerValue', '--env', 'functionVar=functionValue',