Beheben von Fehlern bei Speicherkontonamen

In diesem Artikel wird beschrieben, wie Fehler bei Azure-Speicherkontonamen behoben werden, die während der Bereitstellung mit einer Bicep-Datei oder einer Azure Resource Manager-Vorlage (ARM-Vorlage) auftreten können. Häufige Ursachen für einen Fehler sind ein Speicherkontoname mit ungültigen Zeichen oder ein Speicherkonto, das denselben Namen wie ein vorhandenes Speicherkonto verwendet. Namen von Speicherkonten müssen in Azure global eindeutig sein.

Symptom

Ein ungültiger Speicherkontoname verursacht während der Bereitstellung einen Fehlercode. Im Folgenden finden Sie einige Beispiele für Fehler bei Speicherkontonamen.

Kontoname ungültig

Wenn Ihr Speicherkontoname unzulässige Zeichen enthält, z. B. einen Großbuchstaben oder ein Sonderzeichen wie ein Ausrufezeichen.

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.

Ungültiger Ressourcenstandort

Wenn Sie versuchen, ein neues Speicherkonto mit demselben Namen und in derselben Ressourcengruppe wie denen eines vorhandenen Speicherkontos in Ihrem Azure-Abonnement bereitzustellen, aber einen anderen Standort verwenden. Der Fehler gibt an, dass das Speicherkonto bereits vorhanden ist und nicht an dem neuen Standort erstellt werden kann. Wählen Sie einen anderen Namen aus, um das neue Speicherkonto zu erstellen.

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.

Speicherkonto in anderer Ressourcengruppe

Wenn Sie versuchen, ein neues Speicherkonto mit demselben Namen und Standort wie denen eines vorhandenen Speicherkontos in Ihrem Azure-Abonnement bereitzustellen, aber in einer anderen Ressourcengruppe.

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

Speicherkonto bereits belegt

Wenn Sie versuchen, ein neues Speicherkonto mit demselben Namen wie dem eines Speicherkontos bereitzustellen, das bereits in Azure vorhanden ist. Der vorhandene Speicherkontoname kann sich in Ihrem Abonnement oder Mandanten oder an einer beliebigen Stelle in Azure befinden. Namen von Speicherkonten müssen in Azure global eindeutig sein.

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

Ursache

Häufige Gründe für einen Fehler sind, dass der Speicherkontoname ungültige Zeichen verwendet oder ein duplizierter Name ist. Speicherkontonamen müssen die folgenden Kriterien erfüllen:

  • Länge zwischen 3 und 24 Zeichen mit nur Kleinbuchstaben und Zahlen.
  • Muss in Azure global eindeutig sein. Speicherkontonamen können in Azure nicht dupliziert werden.

Projektmappe

Sie können einen eindeutigen Namen erstellen, indem Sie ein Präfix oder Suffix mit einem Wert aus der uniqueString-Funktion verketten.

In den folgenden Beispielen wird ein Präfix mit der Zeichenfolge storage angegeben, die mit dem Wert von uniqueString verkettet wird.

Bicep verwendet Zeichenfolgeninterpolation mit uniqueString.

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

Stellen Sie sicher, dass der Name des Speicherkontos maximal 24 Zeichen lang ist. Die uniqueString-Funktion gibt 13 Zeichen zurück. Wenn Sie ein Präfix oder Suffix verketten möchten, geben Sie einen Wert an, der maximal 11 Zeichen lang ist.

In den folgenden Beispielen wird ein Parameter namens storageNamePrefix verwendet, der ein Präfix aus maximal 11 Zeichen erstellt.

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

Anschließend verketten Sie den Wert des storageNamePrefix-Parameters mit dem uniqueString-Wert, um einen Speicherkontonamen zu erstellen.

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