Skip to content
Docs Try Aspire
Docs Try

Get started with the Azure Table Storage integrations

Azure Table Storage logo

Azure Table Storage is a NoSQL key-value store for semi-structured data, built on top of Azure Storage. The Aspire Azure Table Storage integration lets you model an Azure Storage account and its table endpoints as first-class resources in your AppHost, then hand the connection information to any consuming app — regardless of language.

Adding Azure Table Storage through Aspire — rather than wiring up connection strings and service URIs by hand — gives you:

  • Zero-config local development. Aspire runs the Azurite emulator automatically so you can develop and test without an Azure subscription.
  • Consistent connection info across languages. Once you reference the table storage resource from a consuming app, Aspire injects connection properties as environment variables in a predictable format that works from C#, TypeScript, Python, Go, or any other language.
  • Built-in Azure provisioning. Calling AddAzureStorage implicitly enables AddAzureProvisioning, which generates Azure resources dynamically during app startup when you target a real Azure subscription.
  • Dashboard observability. The storage resource shows up in the Aspire dashboard with logs, status, and telemetry alongside your other services.
  • A first-class C# client integration. C# apps can use the Aspire.Azure.Data.Tables package for dependency injection, health checks, and OpenTelemetry, all wired up from the same resource name.
  • An emulator-to-cloud upgrade path. The same AppHost model works in local emulator mode and against a real Azure Storage account — switch modes without changing consuming app code.

The Azure Table Storage integration has two sides: a hosting integration that you use in your AppHost to model the storage resource, and a connection story for consuming apps that reference it.

architecture-beta

  group apphost(server)[AppHost]
  group consumer(server)[Consuming app]

  service hosting(server)[Hosting integration] in apphost
  service storage(server)[Azure Storage account] in apphost
  service tables(database)[table storage] in apphost

  service client(iconoir:server-connection)[Client integration] in consumer
  service app(server)[App] in consumer

  hosting:R --> L:storage
  storage:R --> L:tables
  tables:R --> L:client
  client:R --> L:app

The hosting integration lives in your AppHost project and models the Azure Storage account and table resources. The client integration lives in each consuming app and uses the connection information Aspire injects to talk to Table Storage.

Getting there is a two-step process: model the Azure Table Storage resources in your AppHost, then connect to them from each app that needs it.

  1. Add the Azure Table Storage hosting integration to your AppHost, then declare a storage account, a table resource, and reference them from the apps that need to talk to the tables. The Azure Table Storage Hosting integration article walks through every capability — emulator configuration, data volumes, existing accounts, and more — with side-by-side C# and TypeScript examples.

    Set up Azure Table Storage in the AppHost

  2. When you reference an Azure Table Storage resource from a consuming app, Aspire injects its connection information as environment variables. See Connect to Azure Table Storage for the connection properties reference and per-language examples for C#, Go, Python, and TypeScript — including the full C# client integration.

    Connect to Azure Table Storage