如何将 Azure 存储帐户强制设置为经典帐户

How to force Azure Storage Account as classic

我们最近使用 Azure 资源管理器和模板构建了一个基础架构和应用程序部署框架。为了部署云服务,需要先设置一个 Azure 存储帐户。最近,这是由 运行:

完成的
Switch-AzureMode AzureResourceManager

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

这将创建一个存储帐户,供 New-AzureDeployment cmdlet 用于部署。据我所知,创建的存储帐户是现在在 UI 中标记为 "classic" 的帐户。但是,随着最近的更改,现在使用上面的脚本创建的存储帐户是非经典的 (V2)。 New-AzureDeployment 无法识别此 V2 存储帐户,它会在 Powershell 脚本中抛出以下内容:

New-AzureDeployment:ResourceNotFound:未找到存储帐户 'teststorage'。

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

那么是否可以执行以下操作之一:

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

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

switch-azuremode -Name AzureServiceManagement

您实际上可以使用 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')]"
            }
        }

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

在适用于 PSVersion 5.0.10514.6 的最新版 AzureRM 中,这可以通过 powershell cmdlet 完成。

假设您有:

a) Azure RM 认证:Login-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"

Jason 的回答绝对是最好的解决方案..

$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