Устранение ошибок имен учетной записи хранения

В этой статье описываются способы устранения ошибок, связанных с именами учетных записей хранения 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.

Решение

Уникальное имя можно создать, объединив префикс или суффикс со значением из функции 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)}'