var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
cache.PublishAsAzureContainerApp((m, app) =>
{
m.AspireResource.Parameters["host"] = cache.Resource.PrimaryEndpoint.Property(EndpointProperty.Host);
});
builder.Build().Run();
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="9.1.0-preview.1.24521.2" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsAspireHost>true</IsAspireHost>
<UserSecretsId>2988c7d3-6a00-4a11-8335-e5ab11ae7252</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.1.0-preview.1.24521.2" />
<PackageReference Include="Aspire.Hosting.Azure.AppContainers" Version="9.1.0-preview.1.24521.2" />
<PackageReference Include="Aspire.Hosting.Redis" Version="9.1.0-preview.1.24521.2" />
</ItemGroup>
</Project>
Manifest:
{
"$schema": "https://json.schemastore.org/aspire-8.0.json",
"resources": {
"cache": {
"type": "container.v1",
"connectionString": "{cache.bindings.tcp.host}:{cache.bindings.tcp.port}",
"image": "docker.io/library/redis:7.4",
"deployment": {
"type": "azure.bicep.v0",
"path": "cache.module.bicep",
"params": {
"outputs_azure_container_registry_managed_identity_id": "{.outputs.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID}",
"outputs_managed_identity_client_id": "{.outputs.MANAGED_IDENTITY_CLIENT_ID}",
"outputs_azure_container_apps_environment_id": "{.outputs.AZURE_CONTAINER_APPS_ENVIRONMENT_ID}",
"host": "{cache.bindings.tcp.host}"
}
},
"bindings": {
"tcp": {
"scheme": "tcp",
"protocol": "tcp",
"transport": "tcp",
"targetPort": 6379
}
}
}
}
}
This results in an unquoted value in the bicepparam:
using './cache.module.bicep'
param host = cache
param outputs_azure_container_apps_environment_id = '{{ .Env.AZURE_CONTAINER_APPS_ENVIRONMENT_ID }}'
param outputs_azure_container_registry_managed_identity_id = '{{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}'
param outputs_managed_identity_client_id = '{{ .Env.MANAGED_IDENTITY_CLIENT_ID }}'
Notice host = cache without the quotes.
Note: I'm using 9.1.0 but any 9.x version should work.
cc @vhvb1989
Manifest:
{ "$schema": "https://json.schemastore.org/aspire-8.0.json", "resources": { "cache": { "type": "container.v1", "connectionString": "{cache.bindings.tcp.host}:{cache.bindings.tcp.port}", "image": "docker.io/library/redis:7.4", "deployment": { "type": "azure.bicep.v0", "path": "cache.module.bicep", "params": { "outputs_azure_container_registry_managed_identity_id": "{.outputs.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID}", "outputs_managed_identity_client_id": "{.outputs.MANAGED_IDENTITY_CLIENT_ID}", "outputs_azure_container_apps_environment_id": "{.outputs.AZURE_CONTAINER_APPS_ENVIRONMENT_ID}", "host": "{cache.bindings.tcp.host}" } }, "bindings": { "tcp": { "scheme": "tcp", "protocol": "tcp", "transport": "tcp", "targetPort": 6379 } } } } }This results in an unquoted value in the bicepparam:
Notice
host = cachewithout the quotes.Note: I'm using 9.1.0 but any 9.x version should work.
cc @vhvb1989