حل الأخطاء الخاصة بأسماء حسابات التخزين

توضح هذه المقالة كيفية حل الأخطاء لأسماء حسابات تخزين Azure التي يمكن أن تحدث في أثناء النشر باستخدام ملف Bicep أو قالب Azure Resource Manager (قالب ARM). الأسباب الشائعة لحدوث خطأ هي اسم حساب تخزين بأحرف غير صالحة أو حساب تخزين يستخدم نفس اسم حساب تخزين موجود. يجب أن تكون أسماء حسابات التخزين فريدة من نوعها على مستوى عام عبر Azure.

العَرَض

يتسبب اسم حساب تخزين غير صحيح في ظهور رمز خطأ أثناء النشر. فيما يلي بعض الأمثلة على أخطاء أسماء حسابات التخزين.

اسم الحساب غير صالح

إذا كان اسم حساب التخزين يتضمن أحرف محظورة، مثل حرف كبير أو حرف خاص مثل علامة التعجب.

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.

موقع مورد غير صحيح

إذا حاولت نشر حساب تخزين جديد بنفس الاسم وفي نفس مجموعة الموارد، ولكن استخدم موقعًا مختلفًا كحساب تخزين موجود في اشتراك Azure الخاص بك. يشير الخطأ إلى أن حساب التخزين موجود بالفعل ولا يمكن إنشاؤه في الموقع الجديد. حدد اسمًا مختلفًا لإنشاء حساب التخزين الجديد.

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.

حساب التخزين في مجموعة موارد أخرى

إذا حاولت نشر حساب تخزين جديد بنفس الاسم والموقع كحساب تخزين موجود ولكن في مجموعة موارد مختلفة في اشتراكك.

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

حساب التخزين الذي تم أخذه بالفعل

إذا حاولت نشر حساب تخزين جديد بنفس اسم حساب التخزين الموجود بالفعل في Azure. قد يكون اسم حساب التخزين الموجود في اشتراكك أو مستأجرك، أو في أي مكان عبر Azure. يجب أن تكون أسماء حسابات التخزين فريدة من نوعها على مستوى عام عبر Azure.

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

السبب

الأسباب الشائعة لحدوث خطأ هي أن اسم حساب التخزين يستخدم أحرفا غير صالحة أو هو اسم مكرر. يجب أن تفي أسماء حسابات التخزين بالمعايير التالية:

  • الطول بين 3 و24 حرفًا بأحرف صغيرة وأرقام فقط.
  • يجب أن يكون فريدًا عالميًا عبر Azure. لا يمكن تكرار أسماء حسابات التخزين في Azure.

حل

يمكنك إنشاء اسم فريد عن طريق سلسلة بادئة أو لاحقة بقيمة من الدالة uniqueString.

تحدد الأمثلة التالية بادئة بالسلسلة storage المتسلسلة بالقيمة من uniqueString.

يستخدم Bicep استنتاج السلسلة مع uniqueString.

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

تأكد من أن اسم حساب التخزين الخاص بك لا يتجاوز 24 حرفاً. تُعيد الدالة uniqueString ظهور 13 حرفاً. إذا كنت تريد سلسلة بادئة أو لاحقة، فقم بتوفير قيمة 11 حرفاً أو أقل.

تستخدم الأمثلة التالية معلمة مسماة storageNamePrefix تقوم بإنشاء بادئة بحد أقصى 11 حرفاً.

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

ثم تقوم بسلسلة قيمة المعلمة storageNamePrefix بالقيمة uniqueString لإنشاء اسم حساب تخزين.

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