Aspire.Hosting.Azure.Storage
9.4.0
Prefix Reserved
dotnet add package Aspire.Hosting.Azure.Storage --version 9.4.0
NuGet\Install-Package Aspire.Hosting.Azure.Storage -Version 9.4.0
<PackageReference Include="Aspire.Hosting.Azure.Storage" Version="9.4.0" />
<PackageVersion Include="Aspire.Hosting.Azure.Storage" Version="9.4.0" />
<PackageReference Include="Aspire.Hosting.Azure.Storage" />
paket add Aspire.Hosting.Azure.Storage --version 9.4.0
#r "nuget: Aspire.Hosting.Azure.Storage, 9.4.0"
#:package Aspire.Hosting.Azure.Storage@9.4.0
#addin nuget:?package=Aspire.Hosting.Azure.Storage&version=9.4.0
#tool nuget:?package=Aspire.Hosting.Azure.Storage&version=9.4.0
Aspire.Hosting.Azure.Storage library
Provides extension methods and resource definitions for a .NET Aspire AppHost to configure Azure Storage.
Getting started
Prerequisites
- Azure subscription - create one for free
Install the package
Install the .NET Aspire Azure Storage Hosting library with NuGet:
dotnet add package Aspire.Hosting.Azure.Storage
Configure Azure Provisioning for local development
Adding Azure resources to the .NET Aspire application model will automatically enable development-time provisioning for Azure resources so that you don't need to configure them manually. Provisioning requires a number of settings to be available via .NET configuration. Set these values in user secrets in order to allow resources to be configured automatically.
{
"Azure": {
"SubscriptionId": "<your subscription id>",
"ResourceGroupPrefix": "<prefix for the resource group>",
"Location": "<azure location>"
}
}
NOTE: Developers must have Owner access to the target subscription so that role assignments can be configured for the provisioned resources.
Usage example
In the AppHost.cs file of AppHost
, add a Blob (can use tables or queues also) Storage connection and consume the connection using the following methods:
var blobs = builder.AddAzureStorage("storage").AddBlobs("blobs");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(blobs);
The WithReference
method passes that connection information into a connection string named blobs
in the MyService
project. In the Program.cs file of MyService
, the connection can be consumed using the client library Aspire.Azure.Storage.Blobs:
builder.AddAzureBlobServiceClient("blobs");
Creating and using blob containers and queues directly
You can create and use blob containers and queues directly by adding them to your storage resource. This allows you to provision and reference specific containers or queues for your services.
Adding a blob container
var storage = builder.AddAzureStorage("storage");
var container = storage.AddBlobContainer("my-container");
You can then pass the container reference to a project:
builder.AddProject<Projects.MyService>()
.WithReference(container);
In your service, consume the container using:
builder.AddAzureBlobContainerClient("my-container");
This will register a singleton of type BlobContainerClient
.
Adding a queue
var storage = builder.AddAzureStorage("storage");
var queue = storage.AddQueue("my-queue");
Pass the queue reference to a project:
builder.AddProject<Projects.MyService>()
.WithReference(queue);
In your service, consume the queue using:
builder.AddAzureQueue("my-queue");
This will register a singleton of type QueueClient
.
This approach allows you to define and use specific blob containers and queues as first-class resources in your Aspire application model.
Additional documentation
- https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/storage/Azure.Storage.Blobs/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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Aspire.Hosting.Azure (>= 9.4.0)
- AspNetCore.HealthChecks.Azure.Storage.Blobs (>= 9.0.0)
- AspNetCore.HealthChecks.Azure.Storage.Queues (>= 9.0.0)
- AspNetCore.HealthChecks.Uris (>= 9.0.0)
- Azure.Core (>= 1.47.0)
- Azure.Identity (>= 1.14.2)
- Azure.Provisioning (>= 1.2.1)
- Azure.Provisioning.KeyVault (>= 1.1.0)
- Azure.Provisioning.Storage (>= 1.1.2)
- Azure.ResourceManager.Authorization (>= 1.1.4)
- Azure.ResourceManager.KeyVault (>= 1.3.2)
- Azure.ResourceManager.Resources (>= 1.11.0)
- Azure.Security.KeyVault.Secrets (>= 4.8.0)
- Azure.Storage.Blobs (>= 12.24.1)
- Azure.Storage.Queues (>= 12.22.0)
- Google.Protobuf (>= 3.31.1)
- Grpc.AspNetCore (>= 2.71.0)
- Grpc.Net.ClientFactory (>= 2.71.0)
- Grpc.Tools (>= 2.72.0)
- Humanizer.Core (>= 2.14.1)
- JsonPatch.Net (>= 3.3.0)
- KubernetesClient (>= 17.0.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.18)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Primitives (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
- Polly.Core (>= 8.6.2)
- Semver (>= 3.0.0)
- StreamJsonRpc (>= 2.22.11)
- System.IO.Hashing (>= 9.0.7)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Aspire.Hosting.Azure.Storage:
Package | Downloads |
---|---|
Aspire.Hosting.Azure.Functions
Azure Functions resource types for .NET Aspire. |
|
Aspire.Hosting.Azure.EventHubs
Azure Event Hubs resource types for .NET Aspire. |
|
EAVFramework.Extensions.Aspire.Hosting
Aspire Hosting package for EAVFramework |
GitHub repositories (5)
Showing the top 5 popular GitHub repositories that depend on Aspire.Hosting.Azure.Storage:
Repository | Stars |
---|---|
dotnet/aspire-samples
|
|
erwinkramer/bank-api
The Bank API is a design reference project suitable to bootstrap development for a compliant and modern API.
|
|
foxminchan/BookWorm
The practical implementation of .NET Aspire using Microservices
|
|
J-Tech-Japan/Sekiban
Sekiban - an Opinionated Event Sourcing and CQRS Framework using C#. It can store data into Azure Cosmos DB, AWS Dynamo DB or Postgres
|
|
marinasundstrom/YourBrand
Prototype enterprise system for e-commerce and consulting services
|
Version | Downloads | Last Updated | |
---|---|---|---|
9.4.0 | 1,517 | 7/29/2025 | |
9.3.1 | 76,007 | 6/10/2025 | |
9.3.0 | 54,866 | 5/19/2025 | |
9.2.1 | 56,022 | 4/24/2025 | |
9.2.0 | 49,036 | 4/10/2025 | |
9.1.0 | 125,221 | 2/25/2025 | |
9.0.0 | 215,190 | 11/12/2024 | |
9.0.0-rc.1.24511.1 | 6,108 | 10/15/2024 | |
8.2.2 | 24,261 | 10/24/2024 | |
8.2.1 | 20,013 | 9/26/2024 | |
8.2.0 | 35,178 | 8/29/2024 | |
8.1.0 | 14,050 | 7/23/2024 | |
8.0.2 | 9,874 | 6/28/2024 | |
8.0.1 | 16,402 | 5/21/2024 | |
8.0.0 | 1,875 | 5/21/2024 | |
8.0.0-preview.7.24251.11 | 1,993 | 5/7/2024 | |
8.0.0-preview.6.24214.1 | 4,750 | 4/23/2024 | |
8.0.0-preview.5.24201.12 | 4,237 | 4/9/2024 |