Compartilhar via


O nome especificado já está em uso

Ao implantar em Azure, as implantações iniciais podem apresentar falha com um erro semelhante ao seguinte:

"O nome especificado já está em uso"

Este artigo descreve várias técnicas para evitar esse problema.

Sintomas

Ao implantar um projeto de .NET Aspire para Azure, os recursos no modelo de aplicativo são transformados em recursos Azure. Alguns recursos Azure têm nomes de escopo global, como Azure Configuração de Aplicativos, em que todas as instâncias estão no namespace [name].azconfig.io global.

O valor de [name] é derivado do nome do recurso .NET.NET Aspire, juntamente com caracteres aleatórios com base no nome do grupo de recursos. No entanto, a cadeia de caracteres gerada pode exceder o comprimento permitido para o nome do recurso na Configuração do Aplicativo. Como resultado, alguns caracteres são truncados para garantir a conformidade.

Quando ocorre um conflito no namespace global, o recurso falha ao implantar porque a combinação de [name]+[truncated hash] não é exclusiva o suficiente.

Soluções possíveis

Uma solução alternativa é evitar o uso de nomes comuns como appconfig ou storage para recursos. Em vez disso, escolha um nome mais significativo e específico. Isso reduz o potencial de conflito, mas não o elimina completamente. Nesses casos, você pode usar métodos de retorno de chamada para definir um nome específico e evitar o uso total da cadeia de caracteres computada.

Considere o seguinte exemplo:

var appConfig = builder.AddAzureAppConfiguration(
    "appConfig",
    (resource, construct, store) =>
{
    store.AssignProperty(p => p.Name, "'noncalculatedname'");
});