diff --git a/lib/main.js b/lib/main.js index f8262d70..5464be8f 100644 --- a/lib/main.js +++ b/lib/main.js @@ -92,7 +92,9 @@ Lambda.prototype._runHandler = function (handler, event, program, context) { Lambda.prototype._params = function (program, buffer) { var params = { - FunctionName: program.functionName + (program.environment ? '-' + program.environment : ''), + FunctionName: program.functionName + + (program.environment ? '-' + program.environment : '') + + (program.lambdaVersion ? '-' + program.lambdaVersion : ''), Code: { ZipFile: buffer }, @@ -117,9 +119,10 @@ Lambda.prototype._params = function (program, buffer) { Mode: null } }; - if (program.lambdaVersion) { - params.FunctionName += ('-' + program.lambdaVersion); - } + + // Escape characters that is not allowed by AWS Lambda + params.FunctionName = params.FunctionName.replace(/[^a-zA-Z0-9-_]/g, '_'); + if (program.vpcSubnets && program.vpcSecurityGroups) { params.VpcConfig = { 'SubnetIds': program.vpcSubnets.split(','),