in src/Aspire.Hosting.AWS/CDK/CDKExtensions.cs [206:217]
public static IResourceBuilder<TDestination> WithEnvironment<TDestination, TConstruct>(this IResourceBuilder<TDestination> builder, string name, IResourceBuilder<IResourceWithConstruct<TConstruct>> construct, ConstructOutputDelegate<TConstruct> outputDelegate, string? outputName = default)
where TConstruct : IConstruct
where TDestination : IResourceWithEnvironment
{
outputName ??= name.Replace("_", string.Empty);
if (construct.Resource.Annotations.OfType<IConstructOutputAnnotation>().All(annotation => annotation.OutputName != outputName))
{
construct.WithAnnotation(new ConstructOutputAnnotation<TConstruct>(outputName, outputDelegate));
}
construct.WithAnnotation(new ConstructReferenceAnnotation(builder.Resource.Name, outputName));
return builder.WithEnvironment(name, new StackOutputReference(construct.Resource.Construct.GetStackUniqueId() + outputName, construct.Resource.SelectParentResource<IStackResource>()));
}