Aspire.Azure.Storage.Queues
8.0.0-preview.6.24214.1
Prefix Reserved
See the version list below for details.
dotnet add package Aspire.Azure.Storage.Queues --version 8.0.0-preview.6.24214.1
NuGet\Install-Package Aspire.Azure.Storage.Queues -Version 8.0.0-preview.6.24214.1
<PackageReference Include="Aspire.Azure.Storage.Queues" Version="8.0.0-preview.6.24214.1" />
paket add Aspire.Azure.Storage.Queues --version 8.0.0-preview.6.24214.1
#r "nuget: Aspire.Azure.Storage.Queues, 8.0.0-preview.6.24214.1"
// Install Aspire.Azure.Storage.Queues as a Cake Addin #addin nuget:?package=Aspire.Azure.Storage.Queues&version=8.0.0-preview.6.24214.1&prerelease // Install Aspire.Azure.Storage.Queues as a Cake Tool #tool nuget:?package=Aspire.Azure.Storage.Queues&version=8.0.0-preview.6.24214.1&prerelease
Aspire.Azure.Storage.Queues library
Registers QueueServiceClient as a singleton in the DI container for connecting to Azure Queue Storage. Enables corresponding health check, logging and telemetry.
Getting started
Prerequisites
- Azure subscription - create one for free
- Azure Storage account - create a storage account
Install the package
Install the .NET Aspire Azure Storage Queues library with NuGet:
dotnet add package Aspire.Azure.Storage.Queues
Usage example
In the Program.cs file of your project, call the AddAzureQueueClient
extension method to register a QueueServiceClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddAzureQueueClient("queue");
You can then retrieve the QueueServiceClient
instance using dependency injection. For example, to retrieve the client from a Web API controller:
private readonly QueueServiceClient _client;
public ProductsController(QueueServiceClient client)
{
_client = client;
}
See the Azure.Storage.Queues documentation for examples on using the QueueServiceClient
.
Configuration
The .NET Aspire Azure Storage Queues library provides multiple options to configure the Azure Storage Queues connection based on the requirements and conventions of your project. Note that either a ServiceUri
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.AddAzureQueueClient()
:
builder.AddAzureQueueClient("queueConnectionName");
And then the connection string will be retrieved from the ConnectionStrings
configuration section. Two connection formats are supported:
Service URI
The recommended approach is to use a ServiceUri, which works with the AzureStorageQueuesSettings.Credential
property to establish a connection. If no credential is configured, the DefaultAzureCredential is used.
{
"ConnectionStrings": {
"queueConnectionName": "https://{account_name}.queue.core.windows.net/"
}
}
Connection string
Alternatively, an Azure Storage connection string can be used.
{
"ConnectionStrings": {
"queueConnectionName": "AccountName=myaccount;AccountKey=myaccountkey"
}
}
Use configuration providers
The .NET Aspire Azure Storage Queues library supports Microsoft.Extensions.Configuration. It loads the AzureStorageQueuesSettings
and QueueClientOptions
from configuration by using the Aspire:Azure:Storage:Queues
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Azure": {
"Storage": {
"Queues": {
"HealthChecks": false,
"Tracing": true,
"ClientOptions": {
"Diagnostics": {
"ApplicationId": "myapp"
}
}
}
}
}
}
}
Use inline delegates
You can also pass the Action<AzureStorageQueuesSettings> configureSettings
delegate to set up some or all the options inline, for example to disable health checks from code:
builder.AddAzureQueueClient("queue", settings => settings.HealthChecks = false);
You can also setup the QueueClientOptions using the optional Action<IAzureClientBuilder<QueueServiceClient, QueueClientOptions>> configureClientBuilder
parameter of the AddAzureQueueClient
method. For example, to set the first part of "User-Agent" headers for all requests issues by this client:
builder.AddAzureQueueClient("queue", configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(options => options.Diagnostics.ApplicationId = "myapp"));
AppHost extensions
In your AppHost project, install the Aspire Azure Storage Hosting library with NuGet:
dotnet add package Aspire.Hosting.Azure.Storage
Then, in the Program.cs file of AppHost
, add a Storage Queue connection and consume the connection using the following methods:
var queue = builder.AddAzureStorage("storage").AddQueues("queue");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(queue);
The AddQueues
method will read connection information from the AppHost's configuration (for example, from "user secrets") under the ConnectionStrings:queue
config key. The WithReference
method passes that connection information into a connection string named queue
in the MyService
project. In the Program.cs file of MyService
, the connection can be consumed using:
builder.AddAzureQueueClient("queue");
Additional documentation
- https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/storage/Azure.Storage.Queues/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.Azure.Storage.Queues (>= 8.0.1)
- Azure.Identity (>= 1.10.4)
- Azure.Storage.Queues (>= 12.17.1)
- 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.8.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Aspire.Azure.Storage.Queues:
Package | Downloads |
---|---|
Hexalith.Infrastructure.AspireService.Hosting
Hexalith is a set of libraries to build a micro-service architecture. |
|
AspireToolKit.Hosting.Testing.Extensions
Extensions for .NET Aspire integration testing to simplify and improve the user experience when testing. |
|
AspireToolKit
All AspireToolKit packages bundled together. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 727 | 11/12/2024 |
9.0.0-rc.1.24511.1 | 964 | 10/15/2024 |
8.2.2 | 1,759 | 10/24/2024 |
8.2.1 | 3,492 | 9/26/2024 |
8.2.0 | 9,098 | 8/29/2024 |
8.1.0 | 4,321 | 7/23/2024 |
8.0.2 | 4,670 | 6/28/2024 |
8.0.1 | 4,698 | 5/21/2024 |
8.0.0 | 793 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 517 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 3,156 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 1,170 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 789 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 1,737 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 540 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 356 | 11/14/2023 |