【问题标题】:How to force Azure Storage Account as classic如何强制 Azure 存储帐户为经典
【发布时间】:2015-10-31 10:07:53
【问题描述】:

我们最近使用 Azure 资源管理器和模板构建了一个基础结构和应用程序部署框架。为了部署云服务,首先需要设置一个 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. 通过 Powershell 指示 New-AzureDeployment cmdlet 使用 V2 存储帐户?

【问题讨论】:

    标签: powershell azure storage azure-storage account


    【解决方案1】:

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

    switch-azuremode -Name AzureServiceManagement
    

    【讨论】:

      【解决方案2】:

      因为其他人可能会发现这对更高版本的 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"

      【讨论】:

      • 我需要再跳一圈:The subscription is not registered to use namespace 'Microsoft.ClassicStorage'。得到修复:Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicStorage
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        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
        

        【讨论】:

          猜你喜欢
          • 2017-01-15
          • 2016-09-10
          • 2017-07-08
          • 2017-03-24
          • 2021-06-05
          • 1970-01-01
          • 2021-01-31
          • 2015-12-13
          • 2021-05-08
          相关资源
          最近更新 更多