Resolver erros para nomes de conta de armazenamento

Este artigo descreve como resolver erros para nomes de conta de armazenamento Azure que podem ocorrer durante a implementação com um ficheiro Bicep ou modelo Azure Resource Manager (modelo ARM). Causas comuns para um erro são um nome de conta de armazenamento com caracteres inválidos ou uma conta de armazenamento que usa o mesmo nome que uma conta de armazenamento existente. Os nomes das contas de armazenamento devem ser globalmente únicos em todo o Azure.

Sintoma

Um nome de conta de armazenamento inválido causa um código de erro durante a implementação. Seguem-se alguns exemplos de erros para os nomes das contas de armazenamento.

Nome da conta inválido

Se o nome da sua conta de armazenamento incluir caracteres proibidos, como uma letra maiúscula ou um personagem especial como um ponto de exclamação.

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.

Localização de recursos inválidos

Se tentar implementar uma nova conta de armazenamento com o mesmo nome e no mesmo grupo de recursos, utilize uma localização diferente como uma conta de armazenamento existente na sua subscrição Azure. O erro indica que a conta de armazenamento já existe e não pode ser criada no novo local. Selecione um nome diferente para criar a nova conta de armazenamento.

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.

Conta de armazenamento em outro grupo de recursos

Se tentar implantar uma nova conta de armazenamento com o mesmo nome e localização que uma conta de armazenamento existente, mas num grupo de recursos diferente na sua subscrição.

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

Conta de armazenamento já tomada

Se tentar implantar uma nova conta de armazenamento com o mesmo nome que uma conta de armazenamento que já existe em Azure. O nome da conta de armazenamento existente pode estar na sua assinatura ou inquilino, ou em qualquer lugar em Azure. Os nomes das contas de armazenamento devem ser globalmente únicos em todo o Azure.

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

Causa

As razões comuns para um erro são porque o nome da conta de armazenamento usa caracteres inválidos ou é um nome duplicado. Os nomes das contas de armazenamento devem satisfazer os seguintes critérios:

  • Comprimento entre 3 e 24 caracteres com apenas letras e números minúsculos.
  • Deve ser globalmente único em todo o Azure. Os nomes das contas de armazenamento não podem ser duplicados em Azure.

Solução

Pode criar um nome único concedendo um prefixo ou sufixo com um valor da uniqueString função.

Os exemplos a seguir especificam um prefixo com a corda storage que é concatenada com o valor de uniqueString.

Bicep usa interpolação de cordas com um ExclusivoString.

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

Certifique-se de que o nome da sua conta de armazenamento não exceda 24 caracteres. A uniqueString função devolve 13 caracteres. Se quiser concatenar um prefixo ou sufixo, forneça um valor que seja de 11 caracteres ou menos.

Os exemplos a seguir usam um parâmetro nomeado storageNamePrefix que cria um prefixo com um máximo de 11 caracteres.

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

Em seguida, concatena o storageNamePrefix valor do parâmetro com o uniqueString valor para criar um nome de conta de armazenamento.

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