我尝试从 WebJobsSDK gitHub 中的示例中得出一些结论
var eventHubConfig = new EventHubConfiguration();
string eventHubName = "MyHubName";
eventHubConfig.AddSender(eventHubName,"Endpoint=sb://test.servicebus.windows.net/;SharedAccessKeyName=SendRule;SharedAccessKey=xxxxxxxx");
eventHubConfig.AddReceiver(eventHubName, "Endpoint=sb://test.servicebus.windows.net/;SharedAccessKeyName=ReceiveRule;SharedAccessKey=yyyyyyy");
config.UseEventHub(eventHubConfig);
JobHost host = new JobHost(config);
但恐怕这对于我这样有限的“技能”的人来说还不够!
我找不到具有 UseEventHub 属性的 JobHostConfiguration 实例(使用 Microsoft.AzureWebJobs 包的 v1.2.0-alpha-10291 版本),因此我无法将 EventHubConfiguration 传递给 JobHost。
我以前使用过 EventHub,但不是在 WebJob 上下文中使用。我不知道如果使用 WebJob 触发,是否仍然需要 EventHostProcessor...或者 WebJob 触发器本质上充当 EventHostProcessor?
无论如何,如果有人能为像我这样的傻瓜提供一个更完整的例子,那就太好了!谢谢
最佳答案
来自文档here ,您应该拥有所需的所有信息。
您缺少的是 Microsoft.Azure.WebJobs.ServiceBus.1.2.0-alpha-10291
nuget 包的引用。
UseEventHub
是在此包中声明的扩展方法。
否则你的配置看起来没问题。 以下是有关如何从 EventHub 接收消息或向 EventHub 发送消息的示例:
public class BasicTest
{
public class Payload
{
public int Counter { get; set; }
}
public static void SendEvents([EventHub("MyHubName")] out Payload x)
{
x = new Payload { Counter = 100 };
}
public static void Trigger(
[EventHubTrigger("MyHubName")] Payload x,
[EventHub("MyHubName")] out Payload y)
{
x.Counter++;
y = x;
}
}
关于azure - 有使用 EventHub 的 WebJob 示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727808/