无法在 VSCode 中调试 Azure Functions Core Tools
Unable to debug Azure Functions Core Tools in VSCode
我目前无法在 VS Code 中调试我的 Azure Functions 核心工具。
我正在使用 npm 包 azure-functions-core-tools@2
。
正如我阅读的许多资源 func host start
/ func start
应该始终以 --inspect=9229
启动节点进程。如您所见,我的设置并非如此:
[4/30/19 4:51:25 AM] Starting language worker process:node "/usr/lib/node_modules/azure-functions-core-tools/bin/workers/node/dist/src/nodejsWorker.js" --host 127.0.0.1 --port 50426 --workerId 3e909143-72a3-4779-99c7-376ab3aba92b --requestId 656a9413-e705-4db8-b09f-da44fb1f991d --grpcMaxMessageLength 134217728
[4/30/19 4:51:25 AM] node process with Id=92 started
[4/30/19 4:51:25 AM] Generating 1 job function(s)
[...]
[4/30/19 4:51:25 AM] Job host started
Hosting environment: Production
所有更改托管环境的尝试也都失败了。我试图将 FUNCTIONS_CORETOOLS_ENVIRONMENT
添加到我的本地配置,导致错误:
An item with the same key has already been added. Key: FUNCTIONS_CORETOOLS_ENVIRONMENT
我尝试在我的启动和任务设置中添加几个环境变量,使用 --debug
,更改项目设置。没有任何效果。
我目前 运行 在 Linux (WSL) 的 Windows 子系统上,除此之外它工作得很好。
有人知道我在这里做错了什么吗?
我不认为默认情况下启用调试。您必须将语言工作者参数设置为 documented.
在local.settings.json
To debug locally, add "languageWorkers:node:arguments": "--inspect=5858"
under Values
in your local.settings.json file and attach a debugger to port 5858.
使用 func
CLI
您可以使用 --language-worker
argument
进行设置
func host start --language-worker -- --inspect=5858
- 在 VS 代码中
如果您使用 VS Code 和 Azure Functions 扩展进行开发,--inspect
会自动添加,因为在 .vscode/tasks.json
中设置了相应的环境变量
{
"version": "2.0.0",
"tasks": [
{
"label": "runFunctionsHost",
"type": "shell",
"command": "func host start",
"isBackground": true,
"presentation": {
"reveal": "always"
},
"problemMatcher": "$func-watch",
"options": {
"env": {
"languageWorkers__node__arguments": "--inspect=5858"
}
},
"dependsOn": "installExtensions"
},
{
"label": "installExtensions",
"command": "func extensions install",
"type": "shell",
"presentation": {
"reveal": "always"
}
}
]
}
如果您愿意,也可以直接设置此环境变量,而不是将其也添加到 local.settings.json
中。
我目前无法在 VS Code 中调试我的 Azure Functions 核心工具。
我正在使用 npm 包 azure-functions-core-tools@2
。
正如我阅读的许多资源 func host start
/ func start
应该始终以 --inspect=9229
启动节点进程。如您所见,我的设置并非如此:
[4/30/19 4:51:25 AM] Starting language worker process:node "/usr/lib/node_modules/azure-functions-core-tools/bin/workers/node/dist/src/nodejsWorker.js" --host 127.0.0.1 --port 50426 --workerId 3e909143-72a3-4779-99c7-376ab3aba92b --requestId 656a9413-e705-4db8-b09f-da44fb1f991d --grpcMaxMessageLength 134217728
[4/30/19 4:51:25 AM] node process with Id=92 started
[4/30/19 4:51:25 AM] Generating 1 job function(s)
[...]
[4/30/19 4:51:25 AM] Job host started
Hosting environment: Production
所有更改托管环境的尝试也都失败了。我试图将 FUNCTIONS_CORETOOLS_ENVIRONMENT
添加到我的本地配置,导致错误:
An item with the same key has already been added. Key: FUNCTIONS_CORETOOLS_ENVIRONMENT
我尝试在我的启动和任务设置中添加几个环境变量,使用 --debug
,更改项目设置。没有任何效果。
我目前 运行 在 Linux (WSL) 的 Windows 子系统上,除此之外它工作得很好。
有人知道我在这里做错了什么吗?
我不认为默认情况下启用调试。您必须将语言工作者参数设置为 documented.
在
local.settings.json
To debug locally, add
"languageWorkers:node:arguments": "--inspect=5858"
underValues
in your local.settings.json file and attach a debugger to port 5858.使用
func
CLI
您可以使用--language-worker
argument 进行设置
func host start --language-worker -- --inspect=5858
- 在 VS 代码中
如果您使用 VS Code 和 Azure Functions 扩展进行开发,--inspect
会自动添加,因为在.vscode/tasks.json
中设置了相应的环境变量
{
"version": "2.0.0",
"tasks": [
{
"label": "runFunctionsHost",
"type": "shell",
"command": "func host start",
"isBackground": true,
"presentation": {
"reveal": "always"
},
"problemMatcher": "$func-watch",
"options": {
"env": {
"languageWorkers__node__arguments": "--inspect=5858"
}
},
"dependsOn": "installExtensions"
},
{
"label": "installExtensions",
"command": "func extensions install",
"type": "shell",
"presentation": {
"reveal": "always"
}
}
]
}
如果您愿意,也可以直接设置此环境变量,而不是将其也添加到 local.settings.json
中。