我试图在 Visaul Studio Code 中使用 lambda (python) 的调试功能。我按照 AWS Docs 上的说明进行操作,但无法在调试模式下触发 python 应用程序。请看看您是否知道这个问题以及我是否设置错误,谢谢。观察开始申请似乎应用程序未在指定的调试端口上启动?请求致电无法到达端点并且未进入python应用程序如果通过端口 3000 访问,应用程序可以成功完成已执行设置初始化项目并按照指示安装ptvsd在 python 代码上启用 ptvsd添加启动配置项目结构Python源码这基本上只是 python 的官方 helloworld 示例import json# import requestsimport ptvsd# Enable ptvsd on 0.0.0.0 address and on port 5890 that we'll connect later with our IDEptvsd.enable_attach(address=('localhost', 5890), redirect_output=True)ptvsd.wait_for_attach()def lambda_handler(event, context): """Sample pure Lambda function Parameters ---------- event: dict, required API Gateway Lambda Proxy Input Format Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format context: object, required Lambda Context runtime methods and attributes Context doc: https://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html Returns ------ API Gateway Lambda Proxy Output Format: dict Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html """ # try: # ip = requests.get("http://checkip.amazonaws.com/") # except requests.RequestException as e: # # Send some context about this error to Lambda Logs # print(e) # raise e return { "statusCode": 200, "body": json.dumps({ "message": "hello world", # "location": ip.text.replace("\n", "") }), }
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
看来我正在按照文档的指导方针编辑“python-debugging/hello_world/build”中的python文件(文档中有一个步骤要求您将python文件复制到“python-debugging/hello_world/build” )。
但是,当您运行“sam local start-api”时,它实际上在 CloudFormation 模板 (tempalted.yaml) 指定的位置运行 python 文件,该位置位于“python-debugging/hello_world”(检查“CodeUri”属性) )。
当我将所有库移至与 python 文件相同的文件夹时,它就可以工作了。
因此,我想您必须确保正在运行哪个 python(或 lambda)脚本,并确保库与 python 脚本放在一起(如果您不使用层)。
文件夹结构
在 Visual Studio Code 中进入调试模式
步骤一:调用并启动本地API网关
服务器
第 2 步:发送测试请求
客户
第 3 步:收到请求、触发 lambda、待激活 Visual Studio Code 中的调试模式
服务器
步骤 4:触发 Lambda 函数,在 Visual Studio Code 中进入调试模式
在 IDE 中,打开“运行”透视图,选择该文件的启动配置(“SAM CLI Python Hello World”)。开始调试。
第5步:单步执行函数,返回响应
服务器
客户
添加回答
举报
0/150
提交
取消