Aspire.Azure.Data.Tables
8.0.0-preview.2.23619.3
Prefix Reserved
See the version list below for details.
dotnet add package Aspire.Azure.Data.Tables --version 8.0.0-preview.2.23619.3
NuGet\Install-Package Aspire.Azure.Data.Tables -Version 8.0.0-preview.2.23619.3
<PackageReference Include="Aspire.Azure.Data.Tables" Version="8.0.0-preview.2.23619.3" />
paket add Aspire.Azure.Data.Tables --version 8.0.0-preview.2.23619.3
#r "nuget: Aspire.Azure.Data.Tables, 8.0.0-preview.2.23619.3"
// Install Aspire.Azure.Data.Tables as a Cake Addin #addin nuget:?package=Aspire.Azure.Data.Tables&version=8.0.0-preview.2.23619.3&prerelease // Install Aspire.Azure.Data.Tables as a Cake Tool #tool nuget:?package=Aspire.Azure.Data.Tables&version=8.0.0-preview.2.23619.3&prerelease
Aspire.Azure.Data.Tables library
Registers TableServiceClient as a singleton in the DI container for connecting to Azure Table storage. Enables corresponding health check, logging and telemetry.
Getting started
Prerequisites
- Azure subscription - create one for free
- An Azure storage account or Azure Cosmos DB database with Azure Table API specified. - create a storage account
Install the package
Install the .NET Aspire Azure Table storage library with NuGet:
dotnet add package Aspire.Azure.Data.Tables
Usage example
In the Program.cs file of your project, call the AddAzureTableService
extension method to register a TableServiceClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddAzureTableService("tables");
You can then retrieve the TableServiceClient
instance using dependency injection. For example, to retrieve the client from a Web API controller:
private readonly TableServiceClient _client;
public ProductsController(TableServiceClient client)
{
_client = client;
}
See the Azure.Data.Tables documentation for examples on using the TableServiceClient
.
Configuration
The .NET Aspire Azure Table storage library provides multiple options to configure the Azure Table 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.AddAzureTableService()
:
builder.AddAzureTableService("tableConnectionName");
And then the connection information 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 AzureDataTablesSettings.Credential
property to establish a connection. If no credential is configured, the DefaultAzureCredential is used.
{
"ConnectionStrings": {
"tableConnectionName": "https://{account_name}.table.core.windows.net/"
}
}
Connection string
Alternatively, an Azure Storage connection string can be used.
{
"ConnectionStrings": {
"tableConnectionName": "AccountName=myaccount;AccountKey=myaccountkey"
}
}
Use configuration providers
The Azure Table storage library supports Microsoft.Extensions.Configuration. It loads the AzureDataTablesSettings
and TableClientOptions
from configuration by using the Aspire:Azure:Data:Tables
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Azure": {
"Data": {
"Tables": {
"HealthChecks": false,
"Tracing": true,
"ClientOptions": {
"Diagnostics": {
"ApplicationId": "myapp"
}
}
}
}
}
}
}
Use inline delegates
You can also pass the Action<AzureDataTablesSettings> configureSettings
delegate to set up some or all the options inline, for example to disable health checks from code:
builder.AddAzureTableService("tables", settings => settings.HealthChecks = false);
You can also setup the TableClientOptions using the optional Action<IAzureClientBuilder<TableServiceClient, TableClientOptions>> configureClientBuilder
parameter of the AddAzureTableService
method. For example, to set the first part of "User-Agent" headers for all requests issues by this client:
builder.AddAzureTableService("tables", configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(options => options.Diagnostics.ApplicationId = "myapp"));
AppHost extensions
In your AppHost project, add a Table Storage connection and consume the connection using the following methods:
var tables = builder.AddAzureStorage("storage").AddTables("tables");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(tables);
The AddTables
method will read connection information from the AppHost's configuration (for example, from "user secrets") under the ConnectionStrings:tables
config key. The WithReference
method passes that connection information into a connection string named tables
in the MyService
project. In the Program.cs file of MyService
, the connection can be consumed using:
builder.AddAzureTableService("tables");
Additional documentation
- https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/tables/Azure.Data.Tables/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.Data.Tables (>= 7.0.0)
- Azure.Data.Tables (>= 12.8.2)
- Azure.Identity (>= 1.10.4)
- Microsoft.Extensions.Azure (>= 1.7.1)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- OpenTelemetry.Extensions.Hosting (>= 1.7.0-alpha.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Aspire.Azure.Data.Tables:
Package | Downloads |
---|---|
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 | 407 | 11/12/2024 |
9.0.0-rc.1.24511.1 | 417 | 10/15/2024 |
8.2.2 | 1,809 | 10/24/2024 |
8.2.1 | 4,595 | 9/26/2024 |
8.2.0 | 9,393 | 8/29/2024 |
8.1.0 | 5,214 | 7/23/2024 |
8.0.2 | 4,282 | 6/28/2024 |
8.0.1 | 6,774 | 5/21/2024 |
8.0.0 | 357 | 5/21/2024 |
8.0.0-preview.7.24251.11 | 180 | 5/7/2024 |
8.0.0-preview.6.24214.1 | 2,664 | 4/23/2024 |
8.0.0-preview.5.24201.12 | 517 | 4/9/2024 |
8.0.0-preview.4.24156.9 | 659 | 3/12/2024 |
8.0.0-preview.3.24105.21 | 889 | 2/13/2024 |
8.0.0-preview.2.23619.3 | 553 | 12/20/2023 |
8.0.0-preview.1.23557.2 | 409 | 11/14/2023 |