fun local invoke支持-d, --debug-port选项,该命令可用于本地单步调试函数。fun local涉及的调试技术全部基于各个语言通用的调试协议实现,使用对应语言的远程调试方法都可以进行调试。本文介绍通过fun local invoke命令调试函数的命名格式及相关信息。

注意 本文介绍的内容后期将不再维护。如果您的函数计算资源是使用Funcraft管理的,建议您将资源迁移至Serverless Devs管理。

关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs

关于Serverless Devs的详细信息,请参见什么是Serverless Devs

关于如何使用Serverless Devs调试函数,请参见功能列表

由此带来的不便,敬请谅解!

命令格式

fun local涉及到的调试技术全部基于各个语言通用的调试协议实现的,使用对应语言的远程调试方法都可以进行调试。

调试本地事件函数的命令格式有以下几种方式:
  • 通过函数名调试。
    fun local invoke -d <your port> <your function>
  • 通过服务名/函数名调试。
    fun local invoke -d <your port> <your service>/<your function>

相关信息

Event事件源

函数计算提供了丰富的触发器,包括OSS触发器、日志服务触发器及CDN事件触发器等。在本地无论是运行还是调试函数,为了能够完全模拟线上环境,通常需要构造触发事件。触发事件可以是一段可读的JSON配置,也可以是一段非可读的二进制数据。

以JSON以例,假设触发事件内容如下。
{
    "testKey": "testValue"
}
通过以下几种方式将事件内容传给函数执行。
  • 管道:echo ‘{“testKey”: “testValue”}’ | fun local invoke nodejs8
  • 文件:将JSON的内容写到文件中,自定义文件名,例如event.json,然后通过-e指定文件名:fun local invoke -e event.json nodejs8
  • 重定向:支持以下方式。关于重定向的更多信息,请参见参考
    • fun local invoke nodejs8 < event.json
    • fun local invoke nodejs8 <<< ‘{“testKey”: “testValue”}’