Lewati ke konten
DocsTry Aspire
DocsTry

Set up Dapr resources in the AppHost

Konten ini belum tersedia dalam bahasa Anda.

⭐ Community Toolkit Dapr logo

This article is the AppHost API reference for the 📦 CommunityToolkit.Aspire.Hosting.Dapr package. If you’re new to the integration, start with Get started with Dapr and Aspire. For app-side endpoint variables and SDK examples, see Connect Aspire apps to Dapr sidecars.

Terminal
aspire add CommunityToolkit.Aspire.Hosting.Dapr

Or add the package manually:

AppHost.cs
#:package CommunityToolkit.Aspire.Hosting.Dapr@*
AppHost.csproj
<PackageReference Include="CommunityToolkit.Aspire.Hosting.Dapr" Version="*" />

Learn more about aspire add and aspire restore.

Add Dapr, create state-store and pub/sub component resources, then reference the components from a sidecar:

AppHost.cs
var builder = DistributedApplication.CreateBuilder(args);
builder.AddDapr();
var stateStore = builder.AddDaprStateStore("statestore");
var pubSub = builder.AddDaprPubSub("pubsub");
builder.AddProject<Projects.Api>("api")
.WithDaprSidecar(sidecar => sidecar
.WithReference(stateStore)
.WithReference(pubSub));
builder.Build().Run();

AddDaprStateStore and AddDaprPubSub create generic component resources. Use the generic component API when you need another Dapr component type:

AppHost.cs
var builder = DistributedApplication.CreateBuilder(args);
var binding = builder.AddDaprComponent(
"outbound",
"bindings.http");
builder.Build().Run();

Use DaprSidecarOptions or its TypeScript equivalent to configure the app ID, app endpoint, Dapr endpoints, health probes, logging, metrics, component paths, and other dapr run settings:

AppHost.cs
using CommunityToolkit.Aspire.Hosting.Dapr;
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.Api>("api")
.WithDaprSidecar(new DaprSidecarOptions
{
AppId = "catalog-api",
AppPort = 8080,
AppProtocol = "http",
EnableApiLogging = true,
ResourcesPaths = ["./components"]
});
builder.Build().Run();

Use WithMetadata or withMetadata for static values. The hosting integration also exposes overloads for endpoint references, reference expressions, and parameters so metadata can follow Aspire-managed resources.

AppHost.cs
var builder = DistributedApplication.CreateBuilder(args);
var redis = builder.AddRedis("redis");
var redisPassword = builder.AddParameter("redis-password", secret: true);
var stateStore = builder.AddDaprStateStore("statestore")
.WithMetadata("actorStateStore", "true")
.WithMetadata("redisHost", redis.GetEndpoint("tcp"))
.WithMetadata("redisPassword", redisPassword.Resource);
builder.Build().Run();

Each Dapr sidecar is a hidden resource named from its app resource, such as api-dapr. The Aspire dashboard displays the sidecar’s state, endpoints, logs, traces, and metrics with the rest of the application model.

Install 📦 CommunityToolkit.Aspire.Hosting.Azure.Dapr, then enable Dapr components on the Azure Container Apps environment:

AppHost.cs
var builder = DistributedApplication.CreateBuilder(args);
var environment = builder.AddAzureContainerAppEnvironment("cae");
environment.WithDaprComponents();
builder.Build().Run();

The integration translates local Dapr component and sidecar settings into Azure Container Apps Dapr configuration during publish.