如何强制Azure存储帐户作为经典

时间:2015-08-07 21:03:01

标签: powershell azure storage azure-storage account

我们最近使用Azure资源管理器和模板构建了基础架构和应用程序部署框架。要部署Cloud Service,首先需要设置Azure存储帐户。截至最近,这是通过运行:

完成的
Switch-AzureMode AzureResourceManager

New-AzureStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $locationName -Type Standard_LRS

这将创建New-AzureDeployment cmdlet可用于部署的存储帐户。据我所知,创建的存储帐户将是现在在UI中标记为“经典”的存储帐户。但是,对于最近的更改,现在使用上面的脚本创建的存储帐户是非经典的(V2)。 New-AzureDeployment无法识别此V2存储帐户,并在Powershell脚本中将其抛出:

New-AzureDeployment:ResourceNotFound:找不到存储帐户“teststorage”。

如果我在UI中手动创建经典存储帐户,我可以将其用于我的部署,并且它可以正常工作。

因此可以执行以下操作之一:

  1. 强制存储帐户通过Powershell创建为经典帐户?
  2. 指示New-AzureDeployment cmdlet通过Powershell使用V2存储帐户?

4 个答案:

答案 0 :(得分:5)

切换回asm模式(v1 api)并从那里创建存储帐户:

switch-azuremode -Name AzureServiceManagement

答案 1 :(得分:3)

您实际上可以使用ARM(Azure资源管理器)来创建一个" Classic" (即旧门户网站)存储帐户。为此,将以下json添加到" Resources"中,根据需要调整参数。这比@Trondh回答的优势在于,它将作为资源组的一部分进行配置。当您切换回ASM时,您的经典存储帐户将被添加到您无法移动的随机资源组中。

       {
            "name": "[concat(parameters('BuildStorageName'), 'classic')]",
            "type": "Microsoft.ClassicStorage/storageAccounts",
            "location": "[parameters('BuildStorageLocation')]",
            "apiVersion": "2015-06-01",
            "dependsOn": [ ],
            "properties": {
                "accountType": "[parameters('BuildStorageType')]"
            }
        }

答案 2 :(得分:1)

因为其他人可能会发现这对Azure资源管理器的更高版本有帮助(我的版本是1.0.4)....

在最新版本的AzureRM for PSVersion 5.0.10514.6中,可以通过powershell cmdlet完成此操作。

假设你有:

a)通过Azure RM进行身份验证: 登录 - AzureRMAccount

b)已经创建了资源组: New-AzureRmResourceGroup -Name $ resourceGroupName -Location“South Central US”

然后,您可以执行以下操作来获取经典存储帐户:

New-AzureRmResource -ResourceName“” - ResourceGroupName $ resourceGroupName -ResourceType“Microsoft.ClassicStorage / StorageAccounts”-Location“South Central US”-Properties @ {AccountType =“Standard_LRS”} -ApiVersion“2015 -06-01“

答案 3 :(得分:1)

杰森的答案无疑是最好的解决方案。

$resourceGroupName= "myrsgroupp"
$classicStorageName = "myclassicstoragename"
$location = "North Europe"
New-AzureRmResource -ResourceGroupName $resourceGroupName -ResourceName $classicStorageName -ResourceType "Microsoft.ClassicStorage/StorageAccounts" -Location $location -Properties @{AccountType="Standard_LRS"} -ApiVersion "2015-06-01" -Force