Aspire.Azure.Messaging.ServiceBus
8.0.0-preview.5.24201.12
Prefix Reserved
See the version list below for details.
dotnet add package Aspire.Azure.Messaging.ServiceBus --version 8.0.0-preview.5.24201.12
NuGet\Install-Package Aspire.Azure.Messaging.ServiceBus -Version 8.0.0-preview.5.24201.12
<PackageReference Include="Aspire.Azure.Messaging.ServiceBus" Version="8.0.0-preview.5.24201.12" />
paket add Aspire.Azure.Messaging.ServiceBus --version 8.0.0-preview.5.24201.12
#r "nuget: Aspire.Azure.Messaging.ServiceBus, 8.0.0-preview.5.24201.12"
// Install Aspire.Azure.Messaging.ServiceBus as a Cake Addin #addin nuget:?package=Aspire.Azure.Messaging.ServiceBus&version=8.0.0-preview.5.24201.12&prerelease // Install Aspire.Azure.Messaging.ServiceBus as a Cake Tool #tool nuget:?package=Aspire.Azure.Messaging.ServiceBus&version=8.0.0-preview.5.24201.12&prerelease
Aspire.Azure.Messaging.ServiceBus
Registers a ServiceBusClient in the DI container for connecting to Azure Service Bus.
Getting started
Prerequisites
- Azure subscription - create one for free
- Azure Service Bus namespace, learn more about how to add a Service Bus namespace. Alternatively, you can use a connection string, which is not recommended in production environments.
Install the package
Install the .NET Aspire Azure Service Bus library with NuGet:
dotnet add package Aspire.Azure.Messaging.ServiceBus
Usage example
In the Program.cs file of your project, call the AddAzureServiceBusClient
extension method to register a ServiceBusClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddAzureServiceBusClient("sb");
You can then retrieve the ServiceBusClient
instance using dependency injection. For example, to retrieve the client from a Web API controller:
private readonly ServiceBusClient _client;
public ProductsController(ServiceBusClient client)
{
_client = client;
}
See the Azure.Messaging.ServiceBus documentation for examples on using the ServiceBusClient
.
Configuration
The .NET Aspire Azure Service Bus library provides multiple options to configure the Azure Service Bus connection based on the requirements and conventions of your project. Note that either a Namespace
or a ConnectionString
is a required to be supplied.
Use a connection string
When using a connection string from the ConnectionStrings
configuration section, you can provide the name of the connection string when calling builder.AddAzureServiceBusClient()
:
builder.AddAzureServiceBusClient("serviceBusConnectionName");
And then the connection information will be retrieved from the ConnectionStrings
configuration section. Two connection formats are supported:
Fully Qualified Namespace
The recommended approach is to use a fully qualified namespace, which works with the AzureMessagingServiceBusSettings.Credential
property to establish a connection. If no credential is configured, the DefaultAzureCredential is used.
{
"ConnectionStrings": {
"serviceBusConnectionName": "{your_namespace}.servicebus.windows.net"
}
}
Connection string
Alternatively, a connection string can be used.
{
"ConnectionStrings": {
"serviceBusConnectionName": "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=accesskeyname;SharedAccessKey=accesskey"
}
}
Use configuration providers
The .NET Aspire Azure Service Bus library supports Microsoft.Extensions.Configuration. It loads the AzureMessagingServiceBusSettings
and ServiceBusClientOptions
from configuration by using the Aspire:Azure:Messaging:ServiceBus
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Azure": {
"Messaging": {
"ServiceBus": {
"HealthCheckQueueName": "myQueue",
"Tracing": true,
"ClientOptions": {
"Identifier": "CLIENT_ID"
}
}
}
}
}
}
Use inline delegates
You can also pass the Action<AzureMessagingServiceBusSettings> configureSettings
delegate to set up some or all the options inline, for example to configure the health check queue name from code:
builder.AddAzureServiceBusClient("sb", settings => settings.HealthCheckQueueName = "myQueue");
You can also setup the ServiceBusClientOptions using the optional Action<IAzureClientBuilder<ServiceBusClient, ServiceBusClientOptions>> configureClientBuilder
parameter of the AddAzureServiceBusClient
method. For example, to set the client ID for this client:
builder.AddAzureServiceBusClient("sb", configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(options => options.Identifier = "CLIENT_ID"));
AppHost extensions
In your AppHost project, install the Aspire Azure Service Bus Hosting library with NuGet:
dotnet add package Aspire.Hosting.Azure.ServiceBus
Then, in the Program.cs file of AppHost
, add a Service Bus connection and consume the connection using the following methods:
var serviceBus = builder.AddAzureServiceBus("sb");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(serviceBus);
The AddAzureServiceBus
method will read connection information from the AppHost's configuration (for example, from "user secrets") under the ConnectionStrings:sb
config key. The WithReference
method passes that connection information into a connection string named sb
in the MyService
project. In the Program.cs file of MyService
, the connection can be consumed using:
builder.AddAzureServiceBusClient("sb");
Additional documentation
- https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/Azure.Messaging.ServiceBus/README.md
- https://github.com/dotnet/aspire/tree/main/src/Components/README.md
Feedback & contributing
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- AspNetCore.HealthChecks.AzureServiceBus (>= 8.0.0)
- Azure.Identity (>= 1.10.4)
- Azure.Messaging.ServiceBus (>= 7.17.4)
- Microsoft.Extensions.Azure (>= 1.7.2)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- OpenTelemetry.Extensions.Hosting (>= 1.7.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Aspire.Azure.Messaging.ServiceBus:
Package | Downloads |
---|---|
Hexalith.Infrastructure.AspireService.Hosting
Hexalith is a set of libraries to build a micro-service architecture. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Aspire.Azure.Messaging.ServiceBus:
Repository | Stars |
---|---|
Azure-Samples/eShopOnAzure
A variant of https://github.com/dotnet/eShop that uses Azure services
|
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 775 | 11/12/2024 |
9.0.0-rc.1.24511.1 | 1,280 | 10/15/2024 |
8.2.2 | 4,654 | 10/24/2024 |
8.2.1 | 6,600 | 9/26/2024 |
8.2.0 | 9,937 | 8/29/2024 |
8.1.0 | 8,776 | 7/23/2024 |
8.0.2 | 5,002 | 6/28/2024 |
8.0.1 | 7,567 | 5/21/2024 |
8.0.0 | 1,271 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 2,973 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 1,742 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 1,530 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 1,291 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 1,349 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 1,307 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 656 | 11/14/2023 |