微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 VS Code 中调试 Amplify JavaScript 函数 设置步骤:

如何解决如何在 VS Code 中调试 Amplify JavaScript 函数 设置步骤:

如何在 Windows 10 上的 VS Code 上调试 Amplify JavaScript 函数

这个问题出现在 github 上的 How to debug amplify function using visual studio code during invocation? 下,但它已经关闭并且很旧。例如,amplify invoke function 已被弃用,而支持 amplify mock function

我试过这个launch.config

{
  "version": "0.2.0","configurations": [
    {
      "name": "Launch Create Reort","type": "node","request": "launch","program": "${env:APPDATA}/npm/node_modules/@aws-amplify/cli/bin/amplify","args": [
        "mock","function","sayhello","--event","src/event.json","--timeout","0"
      ],"console": "integratedTerminal"
    }
  ]
}

这将记录输出,但不会在正在执行的函数内命中任何断点:

Example Output

设置步骤:

  1. 安装放大 cli

    npm install -g @aws-amplify/cli
    
  2. 初始化放大。选择任何框架的 JavaScript。

    amplify init
    # Choose your default editor:                   Visual Studio Code
    # Choose the type of app that you're building:  javascript  
    # What javascript framework are you using:      none
    
  3. 添加功能

    amplify add function SayHello
    # Choose the runtime that you want to use:            NodeJS
    # Choose the function template that you want to use:  Hello World
    

解决方法

这曾经适用于旧版本的 VS Code。我打开 https://github.com/aws-amplify/amplify-cli/issues/6894 希望能解决这个问题。

与此同时,这里有另一个建议使用 Node 注入器的 here hacky 解决方法。将此代码添加到处理程序方法的顶部(确保在提交之前将其删除):

require('inspector').open(9229,'127.0.0.1',true);
debugger;

请务必在 launch.json 中的 amplify mock 命令中设置足够长的超时时间。要单步调试代码,您可以通过导航到 about:inspect 并单击“打开专用的 Node DevTools”来使用 Chrome 的 Node 调试器。

,

这是一个有点hacky的解决方法。

据我所知,对于单次执行(运行时环境、事件处理和自动可扩展性中的特殊酱料),lambda 并没有那么大的魔力。 Amplify CLI 从 event 传入 event.json 对象并调用定义为处理程序的函数。你也可以在 vanilla node js 中做到这一点。

创建一个像 debug.js 这样的文件 - 你可以把它放在任何你想要的地方,但我的在 .vscode 目录中

const { handler } = require("../amplify/backend/function/sayHello/src")
const event = require("../amplify/backend/function/sayHello/src/event.json")

// invoke
const response = handler(event)

console.log(response )

然后你可以像这样使用普通的 node js 调试启动配置:

{
  "name": "Debug Function","program": "${workspaceFolder}/.vscode/debug.js","request": "launch","skipFiles": ["<node_internals>/**"],"type": "pwa-node"
}

一些更友好/开箱即用的东西会很好,但这至少允许逐步调试而无需太多额外工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。