Solucione erros de nomes de conta de armazenamento

Este artigo descreve como resolver erros para nomes de conta de armazenamento do Azure que podem ocorrer durante a implantação com um arquivo Bicep ou um modelo do ARM (modelo de Resource Manager do Azure). As 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 de uma conta de armazenamento existente. O nome da conta de armazenamento deve ser exclusivo globalmente no Azure.

Sintoma

Um nome de conta de armazenamento inválido causa um código de erro durante a implantação. Veja a seguir alguns exemplos de erros para nomes de conta de armazenamento.

Nome da conta inválido

Se o nome da conta de armazenamento incluir caracteres proibidos, como uma letra maiúscula ou um caractere especial, como um ponto de exclamação, você receberá um erro.

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 recurso inválida

Se você tentar implantar uma nova conta de armazenamento com o mesmo nome e no mesmo grupo de recursos, mas usar um local diferente como uma conta de armazenamento existente em sua assinatura do 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 você tentar implantar uma nova conta de armazenamento com o mesmo nome e localização como uma conta de armazenamento existente, mas um grupo de recursos diferente, em sua assinatura do Azure.

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

A conta de armazenamento já existe

Se você tentar implantar uma nova conta de armazenamento com o mesmo nome de uma conta de armazenamento que já existe no Azure. O nome da conta de armazenamento existente pode estar em sua assinatura ou locatário ou em qualquer lugar do Azure. O nome da conta de armazenamento deve ser exclusivo globalmente no Azure.

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

Causa

Os motivos comuns para um erro são porque o nome da conta de armazenamento usa caracteres inválidos ou é um nome duplicado. Todos os nomes de conta de armazenamento devem atender aos seguintes critérios:

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

Solução

Você pode criar um nome exclusivo concatenando um prefixo ou sufixo com um valor da uniqueString função.

Os exemplos a seguir especificam um prefixo com a cadeia de caracteres storage concatenada com o valor de uniqueString.

O Bicep usa a interpolação de cadeia de caracteres com uniqueString.

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

Verifique se o nome da conta de armazenamento não ultrapassa 24 caracteres. A função uniqueString retorna 13 caracteres. Se você quiser concatenar um prefixo ou sufixo, forneça um valor com 11 caracteres ou menos.

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

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

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

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