Fer*_*ira 8 python amazon-web-services aws-lambda serverless-framework
我正在尝试使用该serverless
框架来创建和部署AWS Lambda函数.我创建了一个vendored
在项目根目录中命名的文件夹,并安装(使用pip install
)函数依赖项.但是,每当我尝试运行它(使用serverless function run
)时,我都会收到错误:
无服务器:运行isNewUser ...
无服务器:警告:此变量未定义:区域
无服务器:-----------------
无服务器:失败 - 返回此错误:
无服务器:{"异常":["Traceback(最近一次调用最后一次):\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",line 170,在\n handler = import_program_as_module(path)\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",第149行,在import_program_as_module \n module = make_module_from_file('lambda_handler',handler_file)\n","File \"/ home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler \",第129行,在make_module_from_file \n py_source_description \n","File \"/ home/fernando/workspace/os-cac/isNewUser/handler.py \",第11行,在\n中从vtex.order import Order \n" ,"ImportError:没有名为vtex.order的模块\n"],"成功":false}无服务器:来自Python
无服务器的异常消息:Traceback(最近一次调用最后一次):,Fil e"/home/fernando/.nvm/versions/node/v5.10.1/bin/serverless-run-python-handler",第170行,处理程序= import_program_as_module(路径),文件"/home/fernando/.nvm/版本/ node/v5.10.1/bin/serverless-run-python-handler",第149行,在import_program_as_module模块中= make_module_from_file('lambda_handler',handler_file),文件"/home/fernando/.nvm/versions/node/v5 .10.1/bin/serverless-run-python-handler",第129行,在make_module_from_file py_source_description,文件"/home/fernando/workspace/os-cac/isNewUser/handler.py",第11行,来自vtex.order import Order,ImportError:没有名为vtex.order的模块`
vtex.order
是在handler.py中导入的模块
我的项目结构如下:
/root/
|
|--_meta/
|--vendored/
|--dependencies...
|--function-name/
|--handler.py
|--event.json
|--s-function.json
|--requirements.txt
|--admin.env
|--package.json
|--s-project.json
|--s-resources-cf.json
|--s-project.json
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?我应该以某种方式配置我的功能以包括来自vendored的依赖项?
以下是应该使其工作的几个步骤:
s-function.json
的路径中包含函数名:
"handler": "function-name/handler.handler",
在handler.py
添加以下内容:
import os
import sys
here = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(here, "../vendored"))
from vtex.order import Order
Run Code Online (Sandbox Code Playgroud)而已.让我知道它是否有效.
归档时间: |
|
查看次数: |
3649 次 |
最近记录: |