visual-studio-code - 如何在 VS Code 中调试 Amplify JavaScript 函数
问题描述
如何在 Windows 10 上的 VS Code 上调试 Amplify JavaScript 函数?
这个问题出现在 github 下如何在调用期间使用 Visual Studio 代码调试放大功能?,但它已经关闭并且很旧。例如,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"
}
]
}
它将记录输出,但不会在正在执行的函数内遇到任何断点:
设置步骤:
安装放大 cli
npm install -g @aws-amplify/cli
初始化放大。选择带有任何框架的 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
添加功能
amplify add function SayHello # Choose the runtime that you want to use: NodeJS # Choose the function template that you want to use: Hello World
解决方案
这是一个有点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 )
然后你可以像这样使用普通的节点 js 调试启动配置:
{
"name": "Debug Function",
"program": "${workspaceFolder}/.vscode/debug.js",
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"type": "pwa-node"
}
一些更友好/开箱即用的东西会很好,但这至少允许在没有太多额外工作的情况下逐步调试。
推荐阅读
- r - R group_by 一个变量或(不是和)另一个
- php - 创建 S3Client 的 PHP AWS SDK 致命错误
- vue.js - 为 vue-shepherd 导入 CSS 文件时遇到问题
- mongodb - 如何在 MongoDB 中删除此弃用警告,为什么会这样?
- python - numpy IndexError:索引 1 超出轴 3 的范围,大小为 1
- git - 如何将 ed25519 ssh 密钥添加到 eclipse 以与 github 一起使用?
- drupal - How to add a static content in a specific drupal page something like like using {% if is_front %} {% endif %} to add it in the home page
- python - Distribute dataset evenly by range of id in PySpark
- matlab - Simplify symbolic expression in matlab and get only the coeeficents
- c# - How to solve a variation to the maximum subarray problem, so that the sum should be between two bounds?