Depolama hesabı adlarıyla ilgili hataları düzeltme

Bu makalede, Bir Bicep dosyası veya Azure Resource Manager şablonu (ARM şablonu) ile dağıtım sırasında oluşabilecek Azure depolama hesabı adlarına yönelik hataların nasıl çözülebileceği açıklanır. Bir hatanın yaygın nedenleri, geçersiz karakterler içeren bir depolama hesabı adı veya mevcut depolama hesabıyla aynı adı kullanan bir depolama hesabıdır. Depolama hesabı adları Azure genelinde genel olarak benzersiz olmalıdır.

Belirti

Geçersiz bir depolama hesabı adı dağıtım sırasında hata koduna neden oluyor. Aşağıda, depolama hesabı adlarıyla ilgili bazı hata örnekleri verilmiştir.

Hesap adı geçersiz

Depolama hesabınızın adında büyük harf gibi yasaklanmış karakterler veya ünlem işareti gibi özel karakterler varsa.

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.

Geçersiz kaynak konumu

Aynı ada ve aynı kaynak grubuna sahip yeni bir depolama hesabı dağıtmaya çalışıyorsanız ancak Azure aboneliğinizde mevcut depolama hesabı olarak farklı bir konum kullanıyorsanız. Hata, depolama hesabının zaten var olduğunu ve yeni konumda oluşturulamazsınız. Yeni depolama hesabını oluşturmak için farklı bir ad seçin.

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.

Başka bir kaynak grubundaki depolama hesabı

Mevcut depolama hesabıyla aynı ada ve konuma sahip ancak aboneliğinizdeki farklı bir kaynak grubunda yeni bir depolama hesabı dağıtmaya çalışırsanız.

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

Depolama hesabı zaten alınmış

Azure'da zaten var olan bir depolama hesabıyla aynı ada sahip yeni bir depolama hesabı dağıtmaya çalışırsanız. Mevcut depolama hesabı adı aboneliğinizde veya kiracınızda ya da Azure genelinde herhangi bir yerde olabilir. Depolama hesabı adları Azure genelinde genel olarak benzersiz olmalıdır.

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

Nedeni

Bir hatanın yaygın nedenleri, depolama hesabı adının geçersiz karakterler kullanması veya yinelenen ad olmasıdır. Depolama hesabı adlarının aşağıdaki ölçütlere uyması gerekir:

  • Yalnızca küçük harfler ve sayılar içeren 3 ile 24 karakter arasındaki uzunluk.
  • Azure genelinde genel olarak benzersiz olmalıdır. Depolama hesabı adları Azure'da çoğaltılamaz.

Çözüm

Bir öneki veya son eki işlevden uniqueString bir değerle birleştirerek benzersiz bir ad oluşturabilirsiniz.

Aşağıdaki örneklerde, değerinden değeriyle uniqueStringbirleştirilmiş dizeye storage sahip bir ön ek belirtilir.

Bicep, uniqueString ile dize ilişkilendirmesini kullanır.

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

Depolama hesabı adınızın 24 karakteri aşmadığından emin olun. uniqueString İşlev 13 karakter döndürür. Bir önek veya sonek birleştirmek istiyorsanız, 11 karakter veya daha kısa bir değer sağlayın.

Aşağıdaki örneklerde, en fazla 11 karakterlik bir ön ek oluşturan adlı storageNamePrefix bir parametre kullanılır.

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

Ardından bir depolama hesabı adı oluşturmak için parametrenin uniqueString değerini değerle birleştirirsinizstorageNamePrefix.

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