Usuwanie błędów dotyczących nazw kont magazynu

W tym artykule opisano sposób rozwiązywania błędów dotyczących nazw kont usługi Azure Storage, które mogą wystąpić podczas wdrażania przy użyciu pliku Bicep lub szablonu usługi Azure Resource Manager (szablon usługi ARM). Typowe przyczyny błędu to nazwa konta magazynu z nieprawidłowymi znakami lub kontem magazynu, które używa tej samej nazwy co istniejące konto magazynu. Nazwy kont magazynu muszą być globalnie unikatowe na platformie Azure.

Objaw

Nieprawidłowa nazwa konta magazynu powoduje kod błędu podczas wdrażania. Poniżej przedstawiono kilka przykładów błędów dotyczących nazw kont magazynu.

Nieprawidłowa nazwa konta

Jeśli nazwa konta magazynu zawiera niedozwolone znaki, takie jak wielka litera lub znak specjalny, taki jak wykrzyknik.

Code=AccountNameInvalid
Message=S!torageckrexph7isnoc is not a valid storage account name. Storage account name must be
between 3 and 24 characters in length and use numbers and lower-case letters only.

Nieprawidłowa lokalizacja zasobu

Jeśli spróbujesz wdrożyć nowe konto magazynu o tej samej nazwie i w tej samej grupie zasobów, ale użyj innej lokalizacji jako istniejącego konta magazynu w subskrypcji platformy Azure. Błąd wskazuje, że konto magazynu już istnieje i nie można go utworzyć w nowej lokalizacji. Wybierz inną nazwę, aby utworzyć nowe konto magazynu.

Code=InvalidResourceLocation
Message=The resource 'storageckrexph7isnoc' already exists in location 'westus'
in resource group 'demostorage'. A resource with the same name cannot be created in location 'eastus'.
Please select a new resource name.

Konto magazynu w innej grupie zasobów

Jeśli spróbujesz wdrożyć nowe konto magazynu o tej samej nazwie i lokalizacji co istniejące konto magazynu, ale w innej grupie zasobów w subskrypcji.

Code=StorageAccountInAnotherResourceGroup
Message=The account storageckrexph7isnoc is already in another resource group in this subscription.

Konto magazynu już zajęte

Jeśli spróbujesz wdrożyć nowe konto magazynu o takiej samej nazwie jak konto magazynu, które już istnieje na platformie Azure. Istniejąca nazwa konta magazynu może znajdować się w twojej subskrypcji lub dzierżawie lub w dowolnym miejscu na platformie Azure. Nazwy kont magazynu muszą być globalnie unikatowe na platformie Azure.

Code=StorageAccountAlreadyTaken
Message=The storage account named storageckrexph7isnoc is already taken.

Przyczyna

Typowe przyczyny błędu są spowodowane tym, że nazwa konta magazynu używa nieprawidłowych znaków lub jest zduplikowaną nazwą. Nazwy kont magazynu muszą spełniać następujące kryteria:

  • Długość od 3 do 24 znaków z małymi literami i cyframi.
  • Musi być globalnie unikatowa na platformie Azure. Nazwy kont magazynu nie mogą być zduplikowane na platformie Azure.

Rozwiązanie

Unikatową nazwę można utworzyć, łącząc prefiks lub sufiks z wartością funkcji uniqueString .

Poniższe przykłady określają prefiks z ciągiem storage połączonym z wartością z uniqueString.

Bicep używa interpolacji ciągów z uniqueString.

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = {
  name: 'storage${uniqueString(resourceGroup().id)}'

Upewnij się, że nazwa konta magazynu nie przekracza 24 znaków. Funkcja uniqueString zwraca 13 znaków. Jeśli chcesz połączyć prefiks lub sufiks, podaj wartość zawierającą 11 znaków lub mniej.

W poniższych przykładach użyto parametru o nazwie storageNamePrefix , który tworzy prefiks z maksymalnie 11 znakami.

@description('The prefix value for the storage account name.')
@maxLength(11)
param storageNamePrefix string = 'storage'

Następnie połączysz wartość parametru storageNamePrefix z wartością uniqueString , aby utworzyć nazwę konta magazynu.

name: '${storageNamePrefix}${uniqueString(resourceGroup().id)}'