Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In .NET Aspire 9.0 GA, lo schema di denominazione delle risorse Azure è stato aggiornato a un sistema più affidabile e flessibile. Questa modifica risolve i problemi relativi allo schema di denominazione precedente, che causava problemi come il troncamento dei nomi e le distribuzioni non valide.
Versione introdotta
.NET .NET Aspire 9.0 GA
Comportamento precedente
La versione precedente utilizzava una versione anticipata/alfa di Azure.Provisioning
, che impiegava uno schema di denominazione che cercava di rappresentare il minimo comune denominatore di tutte le risorse. Questo ha spesso comportato nomi troncati o non validi.
protected string GetGloballyUniqueName(string resourceName)
=> $"toLower(take('{resourceName}${{uniqueString(resourceGroup().id)}}', 24))";
Nuovo comportamento
La nuova versione di Azure.Provisioning
usa uno schema di denominazione più sofisticato che considera i requisiti specifici di ogni tipo di risorsa, ad esempio lunghezza massima e caratteri validi.
public override BicepValue<string>? ResolveName(
ProvisioningContext context,
Resource resource,
ResourceNameRequirements requirements)
{
string prefix = SanitizeText(
resource.ResourceName, requirements.ValidCharacters);
string separator =
requirements.ValidCharacters.HasFlag(ResourceNameCharacters.Hyphen) ? "-" :
requirements.ValidCharacters.HasFlag(ResourceNameCharacters.Underscore) ? "_" :
requirements.ValidCharacters.HasFlag(ResourceNameCharacters.Period) ? "." :
"";
BicepValue<string> suffix = GetUniqueSuffix(context, resource);
return BicepFunction.Take(
BicepFunction.Interpolate(
$"{prefix}{separator}{suffix}"), requirements.MaxLength);
}
Tipo di modifica che causa un'interruzione
Questa modifica è una modifica comportamentale .
Azione consigliata
Gli utenti che desiderano mantenere lo schema di denominazione precedente possono personalizzare l'oggetto Azure CDK ProvisioningContext
. Questa operazione può essere eseguita configurando la classe AzureProvisioningOptions
e inserendo il resolver AzureResourceNamePropertyResolverAspireV8
.
var builder = DistributedApplication.CreateBuilder(args);
builder.Services.Configure<AzureProvisioningOptions>(options =>
{
options.ProvisioningBuildOptions.InfrastructureResolvers.Insert(0, new AspireV8ResourceNamePropertyResolver());
});
API interessate
Nessuno.