Securely Receive CloudEvents
The Arcus.BackgroundJobs.CloudEvents
library provides a collection of background jobs to securely receive CloudEvents.
This allows workloads to asynchronously process event from other components without exposing a public endpoint.
#
How does it work?An Azure Service Bus Topic resource is required to receive CloudEvents on. CloudEvent messages on this Topic will be processed by a background job.
You can write your own background job(s) by deriving from CloudEventBackgroundJob
which already takes care of topic subscription creation/deletion on start/stop of the job.
#
UsageYou can easily implement your own job by implementing the ProcessMessageAsync
method to process new CloudEvents.
using Arcus.BackgroundJobs.CloudEvents;using CloudNative.CloudEvents;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Logging;
public class MyBackgroundJob : CloudEventBackgroundJob{ public MyBackgroundJob( IConfiguration configuration, IServiceProvider serviceProvider, ILogger<CloudEventBackgroundJob> logger) : base(configuration, serviceProvider, logger) {
}
protected override async Task ProcessMessageAsync( CloudEvent message, AzureServiceBusMessageContext messageContext, MessageCorrelationInfo correlationInfo, CancellationToken cancellationToken) { // Process the CloudEvent message... }}