Skip to content

Commit 1afa00b

Browse files
committed
Enhance Dapr sidecar configuration with default AppId and options handling
1 parent e52472d commit 1afa00b

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818

1919
builder.AddProject<Projects.CommunityToolkit_Aspire_Hosting_Dapr_ServiceA>("servicea")
20+
.PublishAsAzureContainerApp((i,c)=> { })
2021
.WithDaprSidecar(sidecar => sidecar.WithReference(stateStore).WithReference(pubSub))
2122
.WaitFor(redis);
2223

src/CommunityToolkit.Aspire.Hosting.Azure.Dapr/AzureDaprHostingExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static void AddScopes(this IResourceBuilder<IDaprComponentResource> build
5050
foreach (var resource in builder.ApplicationBuilder.Resources)
5151
{
5252
if (!resource.TryGetLastAnnotation<DaprSidecarAnnotation>(out var daprAnnotation) ||
53-
!resource.TryGetAnnotationsOfType<DaprComponentReferenceAnnotation>(out var daprComponentReferenceAnnotations))
53+
!daprAnnotation.Sidecar.TryGetAnnotationsOfType<DaprComponentReferenceAnnotation>(out var daprComponentReferenceAnnotations))
5454
{
5555
continue;
5656
}

src/CommunityToolkit.Aspire.Hosting.Dapr/IDistributedApplicationComponentBuilderExtensions.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,40 @@ public static IResourceBuilder<T> WithDaprSidecar<T>(this IResourceBuilder<T> bu
6262
IsHidden = true,
6363
});
6464

65+
66+
var serviceId = builder.Resource.Name;
67+
6568
configureSidecar(sidecarBuilder);
6669

70+
if(sidecarBuilder.Resource.TryGetAnnotationsOfType<DaprSidecarOptionsAnnotation>(out var optionsAnnotations) &&
71+
optionsAnnotations.LastOrDefault() is { } optionsAnnotation)
72+
{
73+
// If no AppId was specified, use the resource name.
74+
if (string.IsNullOrEmpty(optionsAnnotation.Options.AppId))
75+
{
76+
sidecarBuilder.WithOptions(new DaprSidecarOptions
77+
{
78+
AppId = serviceId,
79+
Config = optionsAnnotation.Options.Config,
80+
EnableApiLogging = optionsAnnotation.Options.EnableApiLogging,
81+
LogLevel = optionsAnnotation.Options.LogLevel,
82+
EnableProfiling = optionsAnnotation.Options.EnableProfiling,
83+
MetricsPort = optionsAnnotation.Options.MetricsPort,
84+
DaprHttpPort = optionsAnnotation.Options.DaprHttpPort,
85+
DaprGrpcPort = optionsAnnotation.Options.DaprGrpcPort,
86+
});
87+
}
88+
}
89+
else
90+
{
91+
// No options were specified, so set a default AppId.
92+
sidecarBuilder.WithOptions(new DaprSidecarOptions
93+
{
94+
AppId = serviceId,
95+
});
96+
}
97+
98+
6799
return builder.WithAnnotation(new DaprSidecarAnnotation(sidecarBuilder.Resource));
68100
}
69101

0 commit comments

Comments
 (0)