如何完全停止本地运行的Azure Function?重新启动调试器[VS Code]时,Azure Function [Python V2] 会继续之前的执行吗?

问题描述 投票:0回答:1

我正在运行具有嵌套协调器结构的 HTTP 触发的 Azure 持久功能。该函数的单次执行可以运行多个小时并进行数百次数据库操作。

在开发和测试期间,我在 VS Code [MacOS] 中以调试模式本地运行该函数。为了停止该进程运行,我只需按 Ctrl + C 即可终止该进程。

问题:当我重新启动调试器时,该函数会从中断处继续执行并执行运行时间极长的进程。我无法弄清楚如何完全停止以前启动的进程。我可以通过我在终端中看到的日志判断它们正在运行。

启动 HTTP 触发函数时,我得到

"statusQueryGetUri"
"terminatePostUri"
,我通常用它们来停止该函数,但是我不知道当前正在运行哪个执行,也不知道如何检索ID 允许我终止仍处于活动状态的运行。

这就是我的 launch.json 文件的样子:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Python Functions",
            "type": "python",
            "request": "attach",
            "port": 9091,
            "preLaunchTask": "func: host start"
        }
    ]
}

我的函数已连接到我的开发数据库和开发 Blob 存储。

azure-functions==1.17.0
azure-functions-durable==1.2.6

VS代码:版本:1.90.2
操作系统:Darwin arm64 23.3.0

我试过:

  • 重新启动我的 VS Code 和计算机。
  • 搜索任何本地存储的状态,但找不到任何文件。
  • 尝试通过终端终止进程
    ps aux | grep python
    然后
    kill -9 ID

我期待着:
我希望启动我的调试器并看到我的 azure 函数空闲,直到我通过邮递员启动 HTTP 触发器。然后,当我运行一个函数但通过终止终端或进程来再次停止它时,我希望下次再次启动调试器时它不会继续。

python-3.x azure-functions vscode-debugger azure-functions-core-tools azure-http-trigger
1个回答
0
投票
  1. 要停止 Azure 持久函数,您可以使用函数的
    terminatePostUri

您可以从terminatePostUri获取函数的InstanceID。

http://localhost:7071/runtime/webhooks/durabletask/instances/<Instance_ID>/terminate?reason={text}&taskHub=TestHubName&connection=Storage&code=rzKXAu_HfN3-JqjaYvOzZon5ACBt8Ew7lVvou6zQNMjDAzFuFAtHMw==

enter image description here

  • 通过更新 URI 中的原因来运行
    terminatePostUri
    ,它使用以下命令停止函数执行:
func durable terminate --id <Instance_ID> --reason <reason to terminate>
  1. 断开调试器以停止调试栏中的功能。

  2. 要完全停止本地运行的 Azure Function,您应该在 macOS 上的 Activity Monitor 中停止正在运行该函数的进程。

  • 导航至应用程序=>实用程序=>启动活动监视器
  • 选择正在运行的进程=>退出/强制退出
  • 一旦进程停止,该函数的所有正在运行的实例都将被终止。
  1. 使用函数核心工具
    func host start --debug
    调试函数并使用
    Ctrl+C
    停止运行函数:

enter image description here

参考资料:

完全停止本地运行的 Azure Function:Azure Function (Python V2) 继续执行先前的执行 在 VSCode 中重新启动调试器? (trycatchdebug.net)

© www.soinside.com 2019 - 2024. All rights reserved.