Powershell 如何强制Azure存储帐户成为经典
我们最近使用Azure资源管理器和模板构建了一个基础架构和应用程序部署框架。为了部署云服务,需要首先设置Azure存储帐户。截至最近,这是通过运行:Powershell 如何强制Azure存储帐户成为经典,powershell,azure,storage,azure-storage,account,Powershell,Azure,Storage,Azure Storage,Account,我们最近使用Azure资源管理器和模板构建了一个基础架构和应用程序部署框架。为了部署云服务,需要首先设置Azure存储帐户。截至最近,这是通过运行: Switch-AzureMode AzureResourceManager New-AzureStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $locationName -Type Stan
Switch-AzureMode AzureResourceManager
New-AzureStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $locationName -Type Standard_LRS
这将创建新AzureDeployment cmdlet可用于部署的存储帐户。据我记忆所及,创建的存储帐户将是用户界面中现在标记为“经典”的帐户。但是,根据最近的更改,现在使用上述脚本创建的存储帐户是非经典(V2)。新AzureDeployment无法识别此V2存储帐户,它会在Powershell脚本中抛出此帐户:
New AzureDeployment:ResourceNotFound:未找到存储帐户“teststorage”
如果我在UI中手动创建classic storage帐户,我就可以将其用于部署,而且效果很好
因此,是否可以执行以下操作之一:
switch-azuremode -Name AzureServiceManagement
实际上,您可以使用ARM(Azure资源管理器)创建“经典”(即旧门户)存储帐户。为此,将下面的json添加到“资源”中,并根据需要调整参数。与@Trondh answer相比,它的优势在于它将作为资源组的一部分进行配置。当您切换回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验证:登录AzurerAccount b) 已创建资源组:新AzureRmResourceGroup-名称$resourceGroupName-位置“美国中南部” 然后,您可以执行以下操作以获得经典存储帐户:
新AzureRmResource-ResourceName”“-ResourceGroupName$ResourceGroupName-ResourceType“Microsoft.ClassicStorage/StorageAccounts”-位置“美国中南部”-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
我还需要跳过一个障碍:
订阅未注册为使用名称空间“Microsoft.ClassicStorage”
。通过以下方式修复:注册AzureRmResourceProvider-ProviderNamespace Microsoft.ClassicStorage