De opgegeven naam is al in gebruik
Bij het implementeren in Azure kunnen eerste implementaties mislukken met een fout die vergelijkbaar is met het volgende:
"De opgegeven naam is al in gebruik"
In dit artikel worden verschillende technieken beschreven om dit probleem te voorkomen.
Symptomen
Wanneer u een .NET Aspire-project implementeert in Azure, worden de resources in het app-model omgezet in Azure resources. Sommige Azure resources hebben globaal gescope namen, zoals Azure App Configuration, waarbij alle exemplaren zich in de [name].azconfig.io
globale namespace bevinden.
De waarde van [name]
is afgeleid van de .NET.NET Aspire resourcenaam, samen met willekeurige tekens op basis van de naam van de resourcegroep. De gegenereerde tekenreeks kan echter de toegestane lengte voor de resourcenaam in App Configuration overschrijden. Als gevolg hiervan worden sommige tekens afgekapt om te zorgen voor naleving.
Wanneer er een conflict optreedt in de globale naamruimte, kan de resource niet worden geïmplementeerd omdat de combinatie van [name]+[truncated hash]
niet uniek genoeg is.
Mogelijke oplossingen
Een tijdelijke oplossing is het vermijden van veelgebruikte namen, zoals appconfig
of storage
voor resources. Kies in plaats daarvan een zinvollere en specifiekere naam. Dit vermindert het potentieel voor conflicten, maar elimineert het niet volledig. In dergelijke gevallen kunt u callback-methoden gebruiken om een specifieke naam in te stellen en te voorkomen dat u de berekende tekenreeks helemaal gebruikt.
Bekijk het volgende voorbeeld:
var appConfig = builder.AddAzureAppConfiguration(
"appConfig",
(resource, construct, store) =>
{
store.AssignProperty(p => p.Name, "'noncalculatedname'");
});