我们最近使用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中手动创建经典存储帐户,我可以将其用于我的部署,并且它可以正常工作。
那么可以执行以下操作之一:
切换回asm模式(v1 api)并从那里创建存储帐户:
switch-azuremode -Name AzureServiceManagement
您实际上可以使用ARM(Azure资源管理器)来创建“经典”(即旧门户)存储帐户。为此,将以下json添加到“资源”中,根据需要调整参数。这比@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)....
在最新版本的AzureRM for PSVersion 5.0.10514.6中,可以通过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”
杰森的答案绝对是最好的解决方案..
$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