Skip to content

Commit 0b7e87b

Browse files
committed
Add service-bus-worker NSB 10 sample
1 parent 162d365 commit 0b7e87b

File tree

12 files changed

+151
-0
lines changed

12 files changed

+151
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net10.0</TargetFramework>
5+
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
6+
<OutputType>Exe</OutputType>
7+
<ImplicitUsings>enable</ImplicitUsings>
8+
<LangVersion>14.0</LangVersion>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<ProjectReference Include="..\AzureFunctions.Messages\AzureFunctions.Messages.csproj" />
13+
</ItemGroup>
14+
15+
<ItemGroup>
16+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.*" />
17+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.*" />
18+
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="2.50.0-preview1" />
19+
<PackageReference Include="NServiceBus.AzureFunctions.Worker.ServiceBus" Version="7.0.0-alpha.1" />
20+
</ItemGroup>
21+
22+
<ItemGroup>
23+
<None Update="host.json" CopyToOutputDirectory="PreserveNewest" />
24+
<None Update="local.settings.json" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="Never" />
25+
</ItemGroup>
26+
27+
</Project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Microsoft.Extensions.Logging;
2+
3+
#region FollowupMessageHandler
4+
5+
public class FollowupMessageHandler(ILogger<FollowupMessageHandler> logger) : IHandleMessages<FollowupMessage>
6+
{
7+
public Task Handle(FollowupMessage message, IMessageHandlerContext context)
8+
{
9+
logger.LogWarning("Handling {MessageType} in {HandlerType}.", nameof(FollowupMessage), nameof(FollowupMessageHandler));
10+
return Task.CompletedTask;
11+
}
12+
}
13+
14+
#endregion
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System.Net;
2+
using Microsoft.Azure.Functions.Worker;
3+
using Microsoft.Azure.Functions.Worker.Http;
4+
using Microsoft.Extensions.Logging;
5+
6+
class HttpSender(IFunctionEndpoint functionEndpoint)
7+
{
8+
[Function("HttpSender")]
9+
public async Task<HttpResponseData> Run(
10+
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestData req,
11+
FunctionContext executionContext)
12+
{
13+
var logger = executionContext.GetLogger<HttpSender>();
14+
logger.LogInformation("C# HTTP trigger function received a request.");
15+
16+
var sendOptions = new SendOptions();
17+
sendOptions.RouteToThisEndpoint();
18+
19+
await functionEndpoint.Send(new TriggerMessage(), sendOptions, executionContext);
20+
21+
var r = req.CreateResponse(HttpStatusCode.OK);
22+
await r.WriteStringAsync($"{nameof(TriggerMessage)} sent.");
23+
return r;
24+
}
25+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Microsoft.Extensions.Hosting;
2+
3+
#region configuration-with-function-host-builder
4+
[assembly: NServiceBusTriggerFunction("ASBWorkerEndpoint")]
5+
6+
var host = new HostBuilder()
7+
.ConfigureFunctionsWorkerDefaults()
8+
.UseNServiceBus()
9+
.Build();
10+
11+
await host.RunAsync();
12+
#endregion
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using Microsoft.Extensions.Logging;
2+
3+
#region TriggerMessageHandler
4+
5+
public class TriggerMessageHandler(ILogger<TriggerMessageHandler> logger) : IHandleMessages<TriggerMessage>
6+
{
7+
8+
public Task Handle(TriggerMessage message, IMessageHandlerContext context)
9+
{
10+
logger.LogWarning("Handling {MessageType} in {HandlerType}", nameof(TriggerMessage), nameof(TriggerMessageHandler));
11+
12+
return context.SendLocal(new FollowupMessage());
13+
}
14+
}
15+
16+
#endregion
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"version": "2.0"
3+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"IsEncrypted": false,
3+
"Values": {
4+
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
5+
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
6+
"AzureWebJobsServiceBus": "<set your ASB connection string here>"
7+
}
8+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net10.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<LangVersion>14.0</LangVersion>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<PackageReference Include="NServiceBus" Version="10.0.0-alpha.6" />
11+
</ItemGroup>
12+
13+
</Project>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public class FollowupMessage : IMessage;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public class TriggerMessage : IMessage;

0 commit comments

Comments
 (0)