解決儲存體帳戶名稱的錯誤
本文說明如何解決在使用 Bicep 檔案或 Azure Resource Manager 範本 (ARM 範本) 進行部署期間可能發生的 Azure 儲存體帳戶名稱錯誤。 錯誤的常見原因是儲存體帳戶名稱含有無效的字元,或儲存體帳戶使用了與現有儲存體帳戶相同的名稱。 儲存體帳戶名稱在整個 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
值串連,以建立儲存體帳戶名稱。