本文介绍通过VSCode和IDEA调试Java函数的操作步骤。

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

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

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

关于如何使用Serverless Devs调试函数,请参见使用s local的相关命令调试函数端云联调简介

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

使用VSCode调试Java函数

本文以函数名demo、调试端口3000为例。

注意 使用VSCode调试Java函数时,需要安装两个插件Language Support for Java(TM) by Red Hat及Debugger for Java。关于在VSCode的插件市场中安装插件的步骤,请参见VSCode插件安装
  1. 执行以下命令调试函数。
    fun local invoke -d 3000 --config VSCode demo
    预期输出:
    using template: .fun\build\artifacts\template.yml
    skip pulling image aliyunfc/runtime-java8:1.9.6...
    you can paste these config to .vscode/launch.json, and then attach to your running function
    ///////////////// config begin /////////////////
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "fc/demo/demo",
                "type": "java",
                "request": "attach",
                "hostName": "localhost",
                "port": 3000
            }
        ]
    }
    ///////////////// config end /////////////////
  2. 配置VSCode。当执行完上一步骤后,您需要配置VSCode,否则函数调试将停止,无法继续往下实现调试。详细信息,请参见配置VSCode
  3. 使用VSCode调试Java函数。
    1. 单击VSCode编辑器侧边栏设置断点,如下所示:inmege8fcvscode
    2. 然后单击IMagevscode2图标,即可开始调试。

使用IDEA调试Java函数

  1. 配置IDEA。
    1. 在顶部菜单栏,选择Run > Edit Configurations…image10idaefc
    2. Run/Debug Configurations对话框中,在左上角单击加号图标,然后单击remote
  2. Configuration页签,设置相关信息,然后选择Apply > OK
    参数设置如下:
    • Name:支持自定义。
    • Port:设置为3000。

    配置IDEA的操作视频如下所示:

  3. 单击IDEA编辑器侧边栏设置断点,如下所示:imageiedaimagrtc
  4. 在目标目录中执行以下命令调试Java函数。
    fun local invoke -d 3000 java8
    预期输出:
    skip pulling images ...
  5. 当执行完上一步骤后,函数调试将停止在上一步骤的预期输出中,您需要选择以下方式连接IDEA然后开始调试。
    • 在顶部菜单栏选择Run > Debug...
    • 在右上角的菜单栏中,单击debughanshu图标。

操作视频

  • 使用VSCode调试Java函数的操作视频。
  • 使用IDEA远程调试Java函数的操作视频。