【问题标题】:Debugging Azure functions in Visual Studio在 Visual Studio 中调试 Azure 函数
【发布时间】:2017-02-28 02:37:51
【问题描述】:

我正在开发一个逻辑应用程序并在其中托管几个自定义函数。这些是csx文件,所以是C#代码(脚本代码)。

目前我只使用 Azure Web 前端来编辑和测试函数。但我认为这不是最好的方式,因为我希望有一个持续的部署。所以我想使用 git repo 来存储我的代码。部署过程用于发布更改。

那么可以在本地调试我的功能吗?也许用模拟器或其他东西?

我尝试通过此链接设置本地环境:https://azure.microsoft.com/da-dk/documentation/articles/functions-run-local/#to-run-locally

但我不知道这是否是在本地调试函数的正确方法。

顺便问一下,是否也可以在本地运行逻辑应用程序?

【问题讨论】:

    标签: c# git azure continuous-deployment azure-functions


    【解决方案1】:

    Check this doc out

    这是我用来本地开发的。基本上在安装工具后,您只需按 F5(或 Debug),Visual Studio 就会编译您的函数并为它们设置 localhost 连接。然后,您可以使用像 Postman(我个人最喜欢的)这样的免费程序来触发这些功能。如果您设置了断点,那么它将在调用该函数后被命中。一旦启动,一切完成后你最终会看到这样的东西:

    请注意,它使用的是 http 而不是 https。然后,您可以使用 Postman 或其他任何工具通过列出的 URL 访问该功能。另请注意,在本地运行时,它似乎并不关心您是否将功能设置为需要管理员/功能键,也不关心是否需要身份验证。

    通过此设置,我在本地测试我的所有代码,然后在完成后将其提交到源代码管理,然后使用从链接获得的插件,我将我的函数发布到 Azure。就我而言,我使用的是 TFS 而不是 Git,所以我不能(在撰写本文时)将它与 Azure 的持续集成挂钩。由于您使用的是 Git,因此您无需处理发布步骤。

    【讨论】:

    • 这适用于 c# 吗?因为在文档中描述了节点 js 方式。而且c#中的断点不会在我的机器上被击中:(
    • 我链接的文档是针对 C# 的。是的,它在 C# 中工作,这就是我在本地使用的。我可以打断点并查看变量。如果你没有遇到断点,请确保你已经安装了所有东西。在该文档的顶部,请确保您阅读了有关 2016 年 12 月 6 日更新的粗体部分。还要确保你正在调用你的本地主机并使用 http(正如你在上面的屏幕截图中看到的那样)。
    【解决方案2】:

    我会说这取决于。例如,如果您将使用 blob 触发器,您将无法在本地进行测试,只能“模拟”它。

    这是来自官方文档的有用链接:

    https://azure.microsoft.com/en-us/documentation/articles/functions-run-local/

    【讨论】:

    • 所以我有一个表存储触发器。似乎目前没有支持,我也必须嘲笑它​​?
    • 由于函数是基于云事件的,我想说不是所有的,你都可以在本地测试,你应该模拟它们。我对您的建议是创建一个单独的订阅,仅用于测试,您可以使用云上的真实事件测试您的所有功能。
    • 队列触发器工作。我不确定 blob 和表,但如果队列触发器有效,我认为其他触发器也会。我昨天刚试过这个。然而,它使用的是我在云中的队列存储,而不是队列的本地副本。
    • 检查您的functions.json中的连接字符串。可能它指向您的 Azure 队列。尝试将其替换为 UseDevelopmentStorage=true
    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2017-01-18
    • 2013-09-27
    • 1970-01-01
    • 2022-06-24
    • 2021-12-04
    相关资源
    最近更新 更多