Azure Function EventHub 输出绑定
Azure Function EventHub Output Binding
我开始开发将消息发送到事件中心的 Azure 函数。
使用 Azure Event Hubs output binding for Azure Functions 上提供的示例,我能够使用 HTTP 触发器的 return 值发送事件。
[FunctionName("EventHubOutput")]
[return: EventHub("outputEventHubMessage", Connection = "EventHubConnectionAppSetting")]
public static string Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
return $"{DateTime.Now}";
}
对于我的实现,我不想使用函数触发器(在我的例子中是 HTTP)的 return 值,而是想使用函数内方法的输出。这样做的原因是我想验证请求方法并且只将消息发送到事件中心是否通过验证。
我可以用 method: 替换 return: 但我找不到任何文档告诉我如何实施 方法:.
如果不想用output binding,可以直接用code发送,原理是一样的。关于如何向事件中心发送消息的代码:
为您的 Azure 函数将以下内容插入 header:
[EventHub("outputEventHubMessage", Connection = "EventHubConnectionAppSetting")]IAsyncCollector<[your type here]> eventsToSend
您现在可以使用以下 queue 消息以线程安全的方式传输(即,如果您有一系列线程同时排队,它工作得很好):
await eventsToSend.AddAsync([Your Object]).ConfigureAwait(false);
如果您没有要发送的内容,请不要在代码中调用 .AddAsync() 方法。
我开始开发将消息发送到事件中心的 Azure 函数。
使用 Azure Event Hubs output binding for Azure Functions 上提供的示例,我能够使用 HTTP 触发器的 return 值发送事件。
[FunctionName("EventHubOutput")]
[return: EventHub("outputEventHubMessage", Connection = "EventHubConnectionAppSetting")]
public static string Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
return $"{DateTime.Now}";
}
对于我的实现,我不想使用函数触发器(在我的例子中是 HTTP)的 return 值,而是想使用函数内方法的输出。这样做的原因是我想验证请求方法并且只将消息发送到事件中心是否通过验证。
我可以用 method: 替换 return: 但我找不到任何文档告诉我如何实施 方法:.
如果不想用output binding,可以直接用code发送,原理是一样的。关于如何向事件中心发送消息的代码:
为您的 Azure 函数将以下内容插入 header:
[EventHub("outputEventHubMessage", Connection = "EventHubConnectionAppSetting")]IAsyncCollector<[your type here]> eventsToSend
您现在可以使用以下 queue 消息以线程安全的方式传输(即,如果您有一系列线程同时排队,它工作得很好):
await eventsToSend.AddAsync([Your Object]).ConfigureAwait(false);
如果您没有要发送的内容,请不要在代码中调用 .AddAsync() 方法。