文档首页 > > Sandbox 调试工具使用指南> Sandbox应用示例> 调试

调试

分享
更新时间:2020/05/06 GMT+08:00

命令HSS invoke支持在本地调试函数。要在启用调试支持的情况下运行HSS,请在命令行上指定--debugPort或-d。

要在调试模式下在端口5000上本地调用函数,示例命令如下。

$ hss invoke -d 5000 <FunctionStage>

或在交互模式下,直接输入如下命令执行:

invoke -d 5000 <FunctionStage>

调试Python函数

Python要求在函数代码中启用远程调试,如果使用--debugPort或-d为使用其中一个Python运行时的FunctionGraph启用调试,则HSS将通过该端口从主机映射到FunctionGraph函数运行时容器。如果需要在函数代码中启用远程调试,请使用Python软件包,例如remote-pdb:https://pypi.python.org/pypi/remote-pdb

举例说明调试方法:

  1. 在代码中import remote_pdb,通过set_trace设置断点,并监听5000端口。
    import json
    import remote_pdb
    def handler(event, context):
        remote_pdb.RemotePdb(host='127.0.0.1', port=5000).set_trace()
        logger = context.getLogger()
        logger.info("start...")
        output = 'Hello message: ' + json.dumps(event)
        return output
  2. 执行函数,添加-d 5000参数,将容器的5000端口映射到主机的5000端口。示例命令如下:
    $ hss invoke -d 5000 MyFuncStage1

    类似回显信息如下:

    2018/08/23 16:59:07 INFO: Reading events from stdin since eventFile not provided:
    {"key": "value" }
    2018/08/23 16:59:13 INFO: Template: template.yml, successfully parsed
    2018/08/23 16:59:13 INFO: Container created, cout: [8ae754ed07ebbb70713710b5ba433e019d8aba44bc0817741716a67b1fb0d707]
    2018/08/23 16:59:14 INFO: Executing the function successfully in the Container, code: 200
    root@SZX1000371099:~/data/1.0.4/hss/test/sample-code/python2.7# vi main.py 
    root@SZX1000371099:~/data/1.0.4/hss/test/sample-code/python2.7# echo '{"key": "value" }' | hss invoke -d 5000 MyFuncStage1
    2018/08/23 17:01:14 INFO: Reading events from stdin since eventFile not provided:
    2018/08/23 17:01:14 INFO: Template: template.yml, successfully parsed
    2018/08/23 17:01:14 INFO: Container created, cout: [1ac4aee102d04b38fb447adc7cb53739be47426faf6dd837abfb3b836b9cdd3f]
    2018/08/23 17:01:15 CRITICAL:root:RemotePdb session open at 0.0.0.0:5000, waiting for connection ...
    2018/08/23 17:01:15 RemotePdb session open at 0.0.0.0:5000, waiting for connection ...
    2018/08/23 17:02:23 CRITICAL:root:RemotePdb accepted connection from ('172.17.0.1', 40888).
    2018/08/23 17:02:23 RemotePdb accepted connection from ('172.17.0.1', 40888).
    2018/08/23 17:03:50 INFO: Executing the function successfully in the Container, code: 200
  3. 在新的shell窗口执行telnet 127.0.0.1 5000打开pdb调试命令行,具体调试命令可查看上述链接。
    类似回显信息如下:
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    > /var/fssrt/function/main.py(6)handler()
    (Pdb)

调试Go函数

调试功能暂不可用。

调试Java函数

调试功能暂不可用。

调试Node.js函数

调试功能暂不可用。

调试C#函数

调试功能暂不可用。

调试PHP函数

调试功能暂不可用。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问