diff --git a/lib/RuntimePython27.js b/lib/RuntimePython27.js index 496967feb..6a6214dae 100644 --- a/lib/RuntimePython27.js +++ b/lib/RuntimePython27.js @@ -96,22 +96,24 @@ class ServerlessRuntimePython27 extends RuntimeBase { }); } - getHandler() { - return "_serverless_handler.handler"; + getHandler(func) { + return path.join(path.dirname(func.handler), "_serverless_handler.handler"); } _afterCopyDir(func, pathDist, stage, region) { return this._getEnvVars(stage, region) .then(envVars => { - const handlerArr = func.handler.split('/').pop().split('.'), - handlerFile = handlerArr[0], + + const handlerArr = func.handler.split('.'), + handlerDir = path.dirname(func.handler), + handlerFile = handlerArr[0].split('/').pop(), handlerMethod = handlerArr[1]; let loader = ['import os']; loader = loader.concat(_.map(envVars, (value, key) => `os.environ['${key}'] = str('${value}')`)); loader.push(`from ${handlerFile} import ${handlerMethod}`); - return fs.writeFileAsync(path.join(pathDist, '_serverless_handler.py'), loader.join('\n')); + return fs.writeFileAsync(path.join(pathDist, handlerDir, '_serverless_handler.py'), loader.join('\n')); }); }