9

我的函数将从现有的 ServiceBus 主题触发。我已经使用 VS2017 (15.3) 预览版中的新工具创建了该函数,作为编译函数。

如何在本地测试此功能?

4

3 回答 3

22

对于非 http 触发的函数,您可以向本地管理员端点发送 POST 请求。更多信息在这里

像这样(我正在使用邮递员) 在此处输入图像描述

于 2017-10-12T17:02:33.533 回答
2

如果你想检查你的函数是否会被 Azure 服务总线消息触发,你需要拥有一个 Azure 订阅并创建一个服务总线命名空间,因为微软没有像 Azure 存储模拟器那样提供 Azure 服务总线模拟器。

如果你想调试你的函数,你可以创建一个新的控制台应用程序并调用你定义的函数。以下步骤供您参考。

第 1 步,创建控制台应用程序。

第 2 步,将 Project 引用添加到函数项目中。

第 3 步,将 Microsoft.Azure.WebJobs -Version 2.1.0-beta1 包从 NuGet 安装到您的控制台应用程序。

Install-Package Microsoft.Azure.WebJobs -Version 2.1.0-beta1 

第 4 步,使用以下代码调用您的函数。

class Program
{
    static void Main(string[] args)
    {
        Function1.Run("msg1", new MyTraceWriter(TraceLevel.Info));
    }
}

public class MyTraceWriter : TraceWriter
{
    public MyTraceWriter(TraceLevel level) : base(level)
    {

    }

    public override void Trace(TraceEvent traceEvent)
    {
        Console.WriteLine(traceEvent.Message);
    }
}
于 2017-08-30T06:19:50.337 回答
0

您在调试模式下运行项目并为消息创建 JSON 有效负载,然后您可以以这种格式发布完整的 json 对象。

{
    "input": "<trigger_input>"
}

例如

http://localhost:7071/admin/functions/OrderFunction

在此处输入图像描述

然后,您可以在函数体中读取消息并获取您发布的 Json。

Encoding.UTF8.GetString(message.Body)
于 2021-10-06T05:16:32.370 回答