Lösa fel för lagringskontonamn

Den här artikeln beskriver hur du löser fel för Azure Storage-kontonamn som kan inträffa under distributionen med en Bicep-fil eller en Azure Resource Manager-mall (ARM-mall). Vanliga orsaker till ett fel är ett lagringskontonamn med ogiltiga tecken eller ett lagringskonto som använder samma namn som ett befintligt lagringskonto. Lagringskontonamn måste vara globalt unika i Hela Azure.

Symptom

Ett ogiltigt lagringskontonamn orsakar en felkod under distributionen. Följande är några exempel på fel för lagringskontonamn.

Ogiltigt kontonamn

Om namnet på ditt lagringskonto innehåller otillåtna tecken, t.ex. en versal eller specialtecken som ett utropstecken.

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.

Ogiltig resursplats

Om du försöker distribuera ett nytt lagringskonto med samma namn och i samma resursgrupp, men använder en annan plats som ett befintligt lagringskonto i din Azure-prenumeration. Felet anger att lagringskontot redan finns och inte kan skapas på den nya platsen. Välj ett annat namn för att skapa det nya lagringskontot.

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.

Lagringskonto i en annan resursgrupp

Om du försöker distribuera ett nytt lagringskonto med samma namn och plats som ett befintligt lagringskonto men i en annan resursgrupp i din prenumeration.

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

Lagringskontot har redan tagits

Om du försöker distribuera ett nytt lagringskonto med samma namn som ett lagringskonto som redan finns i Azure. Namnet på det befintliga lagringskontot kan finnas i din prenumeration eller klientorganisation, eller var som helst i Azure. Lagringskontonamn måste vara globalt unika i Hela Azure.

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

Orsak

Vanliga orsaker till ett fel är att namnet på lagringskontot använder ogiltiga tecken eller är ett dubblettnamn. Lagringskontonamn måste uppfylla följande kriterier:

  • Längd mellan 3 och 24 tecken med endast gemener och siffror.
  • Måste vara globalt unikt i Hela Azure. Lagringskontonamn kan inte dupliceras i Azure.

Lösning

Du kan skapa ett unikt namn genom att sammanfoga ett prefix eller suffix med ett värde från uniqueString funktionen.

I följande exempel anges ett prefix med strängen storage som sammanfogas med värdet från uniqueString.

Bicep använder stränginterpolation med uniqueString.

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

Kontrollera att namnet på lagringskontot inte överskrider 24 tecken. Funktionen uniqueString returnerar 13 tecken. Om du vill sammanfoga ett prefix eller suffix anger du ett värde som är högst 11 tecken.

I följande exempel används en parameter med namnet storageNamePrefix som skapar ett prefix med högst 11 tecken.

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

Sedan sammanfogar storageNamePrefix du parameterns värde med uniqueString värdet för att skapa ett lagringskontonamn.

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