読者です 読者をやめる 読者になる 読者になる

備考欄に感想を書くタイプのエンジニア

それで出世が遅れ(ry

Azure ストレージ アカウントを作成するときにちょっとハマった

Windows Azure で Azure ストレージを利用する場合、ストレージ アカウントを作成する必要がありますが、Windows Azure PowerShell も公開されていることですし、Web 上のポータル サイトで GUI をポチポチせずとも常に起動しっぱなしの PowerShell でサッと作ってしまおうと思うわけです。こんな風に。

PS > New-AzureStorageAccount -StorageAccountName "azureStorage1" -Label "Storage Account for SQL" -Location "North Central US"

すると、こんなエラーが出ます。

 New-AzureStorageAccount : 指定された引数は、有効な値の範囲内にありません。
 パラメーター名: parameters.ServiceName
 発生場所 行:1 文字:1
 + New-AzureStorageAccount `
 + ~~~~~~~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : NotSpecified: (:) [New-AzureStorageAccount], ArgumentOutOfRangeException
     + FullyQualifiedErrorId : System.ArgumentOutOfRangeException,Microsoft.WindowsAzure.Commands.ServiceManagement.Storage 
    Services.NewAzureStorageAccountCommand

最初は有効な値の範囲内とか何事かと思ったのですが、ちゃんと New-AzureStorageAccount に関する公式サイトWindows Azure の Web 上の GUI、そして PowerShellGet-Help New-AzureStorageAccount -Detailed には書いてあります(-Detailed パラメーターがない場合はフィールドの文字入力制限について言及されている文章は出てきません)。

フィールドは 3 ~ 24 文字で指定する必要があります。 フィールドに使用できるのは、小文字のアルファベットおよび数字のみです。 (The storage account name (...) must be between 3 and 24 characters in length and use lowercase letters and numbers only. )

なぜこういう制限があるかというとおそらく、サービスのエンドポイントの URL の形式が以下のようになっていて、大文字と記号が使えないからだと思われます。

http://mystorageaccount.*.core.windows.net/*

ともかく、いくら PowerShell が "動詞-名詞" 形式の命名規則で、ストレージ アカウントを新たに作成するなら NewStorageAccount な感じかなーあーあったあったーってヘラヘラ使ってると、ときどきこんな落とし穴に…(普通ははまらないですね)。