Поделиться через


Указанное имя уже используется

При развертывании в Azure начальные развертывания могут завершиться ошибкой, аналогичной следующей.

"Указанное имя уже используется"

В этой статье описано несколько методов, чтобы избежать этой проблемы.

Симптомы

При развертывании проекта .NET Aspire в Azureресурсы в модели приложений в преобразуются в ресурсы Azure. Некоторые Azure ресурсы имеют глобально ограниченные имена, например конфигурацию приложений Azure, где все экземпляры находятся в глобальном пространстве имен [name].azconfig.io.

Значение [name] образуется из имени ресурса .NET.NET Aspire, а также случайных символов в зависимости от имени группы ресурсов. Однако созданная строка может превышать допустимую длину имени ресурса в конфигурации приложений. В результате некоторые символы усечены для обеспечения соответствия требованиям.

Если конфликт возникает в глобальном пространстве имен, ресурс не удается развернуть, так как сочетание [name]+[truncated hash] недостаточно уникально.

Возможные решения

Одно из обходных решений заключается в том, чтобы избежать использования общих имен, таких как appconfig или storage для ресурсов. Вместо этого выберите более понятное и конкретное имя. Это снижает потенциал для конфликта, но не полностью устраняет его. В таких случаях можно использовать методы обратного вызова, чтобы задать определенное имя и избежать использования вычисляемой строки в целом.

Рассмотрим следующий пример:

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