Functions.Templates/Templates/EventHubTrigger-FSharp/EventHubTriggerFSharp.fs (22 lines of code) (raw):
namespace Company.Function
open System
open System.Text
open System.Threading.Tasks
open Azure.Messaging.EventHubs
open Microsoft.Azure.WebJobs
open Microsoft.Extensions.Logging
module EventHuBTriggerFSharp =
[<FunctionName("EventHubTriggerFSharp")>]
let run([<EventHubTrigger("eventHubNameValue", Connection="ConnectionValue")>] events: EventData[], log: ILogger) =
async {
let exns = ResizeArray<Exception>()
for eventData in events do
try
log.LogInformation $"F# Event Hub trigger function processed a message: {eventData.EventBody}"
with
| e -> exns.Add(e)
if exns.Count > 1 then
raise(AggregateException(exns))
if exns.Count = 1 then
raise(exns[0])
} |> Async.StartAsTask