Configure IDE to Debug Python Functions

For the purposes of this help documentation we are going to illustrate how to configure debugging preferences of Python non-HTTPS and Integration functions in Visual Studio Code.

Note: This step is only applicable if you wish to debug your tunneled functions and if you have used the following CLI command:
copy
$
catalyst functions:shell –tunnel tunnel-port-number –debug port-number

If you wish only to tunnel your functions and you have used the following CLI command then no IDE configurations is required.

copy
$
catalyst functions:shell –tunnel tunnel-port-number

This command will only tunnel your functions and publish the logs of the functions in the Catalyst CLI.

Configure your VS Code IDE’s debugger in the following manner:

  1. Ensure you have all the functions you need to debug in the local machine, and open the concerned project in VS Code. catalyst_tunneling_debug_vscode_python_openprojec

  2. Click the Run/Debug button present in the menu-bar and create a launch.json file, by clicking the “create a launch.json file” option. catalyst_tunneling_vscode_debug_create_json_high

This is how the launch.json file appears before you begin configurations. catalyst_tunneling_vscode_debug_create_json_high

  1. Copy the JSON snippet below and paste it as value in the “configurations” JSON key.
    
launch.json
copy
"configurations":[{ "name": "Python: Current File", "type": "debugpy", "request": "attach", "connect": { "host": "127.0.0.1", "port": 9001 //the debug port number which you have specified in the catalyst functions:shell --tunnel 8001 --debug 9001. }, "justMyCode": true }],
  1. Install the Python Debugger VS Code extension to be able to debug python fuctions in Visual Studio Code IDE.

catalyst_tunneling_config_ide_python_debugger_extension install

  1. Install debugpy in the Python function’s source directory using the following command:
copy
$
python3.9 -m pip install debugpy -t ./

catalyst_tunneling_vscode_debug_install_python_debuggy

  1. Copy the following code lines and paste them in the very beginning of your function code:
    
code_file.py
copy
import debugpy debugpy.listen(9001) #specify the port for debugging print("Waiting for debugger to attach") debugpy.wait_for_client() print("debugger attached")
  1. Use the debugpy.breakpoint() function anywhere in the main python code file to introduce a breakpoint. catalyst_tunneling_vscode_debugging_with_debugger

Last Updated 2024-07-23 17:40:25 +0530 +0530

ON THIS PAGE