在Azure资源管理模板中创建StorageV2存储帐户

在Azure资源管理模板中创建StorageV2存储帐户,azure,azure-resource-manager,arm-template,Azure,Azure Resource Manager,Arm Template,我正在尝试创建一个ARM模板,其中包括创建一个存储帐户 我想创建一个StorageV2(通用v2)帐户,但这似乎失败了,因为StorageV2中不存在 kind的唯一允许值是Storage和BlobStorage,因此当尝试部署上述模板时,会收到以下错误: "error": { "code": "AccountPropertyIsInvalid", "message": "Account property kind is invalid for the request." } 是否可以使用

我正在尝试创建一个ARM模板,其中包括创建一个存储帐户

我想创建一个
StorageV2(通用v2)
帐户,但这似乎失败了,因为
StorageV2
中不存在

kind
的唯一允许值是
Storage
BlobStorage
,因此当尝试部署上述模板时,会收到以下错误:

"error": {
 "code": "AccountPropertyIsInvalid",
 "message": "Account property kind is invalid for the request."
}

是否可以使用ARM模板创建V2存储帐户?

您必须apiVersion更新到
2018-02-01

我编写了一个PowerShell脚本来确定资源提供程序的最新API版本:

<#
.Synopsis
   Gets the latest API version of a resource provider
.DESCRIPTION
   The following cmdlet returns the latest API version for the specified resource provider.
   You can also include pre-release (preview) versions using the -IncludePreview switch
.EXAMPLE
   Using the Full Parameter Set:
   Get-AzureRmResourceProviderLatestApiVersion -Type Microsoft.Storage/storageAccounts
.EXAMPLE
   Using the Full Parameter Set with the -IncludePreview switch:
   Get-AzureRmResourceProviderLatestApiVersion -Type Microsoft.Storage/storageAccounts -IncludePreview
.EXAMPLE
   Using the ProviderAndType Parameter Set:
   Get-AzureRmResourceProviderLatestApiVersion -ResourceProvider Microsoft.Storage -ResourceType storageAccounts
#>
function Get-AzureRmResourceProviderLatestApiVersion
{
    [CmdletBinding()]
    [Alias()]
    [OutputType([string])]
    Param
    (
        [Parameter(ParameterSetName = 'Full', Mandatory = $true, Position = 0)]
        [string]$Type,

        [Parameter(ParameterSetName = 'ProviderAndType', Mandatory = $true, Position = 0)]
        [string]$ResourceProvider,

        [Parameter(ParameterSetName = 'ProviderAndType', Mandatory = $true, Position = 1)]
        [string]$ResourceType,

        [switch]$IncludePreview
    )

    # retrieving the resource providers is time consuming therefore we store
    # them in a script variable to accelerate subsequent requests.
    if (-not $script:resourceProvider)
    {
        $script:resourceProvider = Get-AzureRmResourceProvider
    }

    if ($PSCmdlet.ParameterSetName -eq 'Full')
    {
        $ResourceProvider = ($Type -replace "\/.*")
        $ResourceType = ($Type -replace ".*?\/(.+)", '$1')
    }

    $provider = $script:resourceProvider |
        Where-Object {
        $_.ProviderNamespace -eq $ResourceProvider -and
        $_.ResourceTypes.ResourceTypeName -eq $ResourceType
    }

    if ($IncludePreview)
    {
        $provider.ResourceTypes.ApiVersions[0]
    }
    else
    {
        $provider.ResourceTypes.ApiVersions | Where-Object {
            $_ -notmatch '-preview'
        } | Select-Object -First 1
    }
}
并写了一篇关于它的博客文章:

能否尝试将apiVersion更新到2018-02-01@MartinBrandl啊,当然!请随便回答,我会接受的。当然,谢谢你——很高兴我能帮上忙。
<#
.Synopsis
   Gets the latest API version of a resource provider
.DESCRIPTION
   The following cmdlet returns the latest API version for the specified resource provider.
   You can also include pre-release (preview) versions using the -IncludePreview switch
.EXAMPLE
   Using the Full Parameter Set:
   Get-AzureRmResourceProviderLatestApiVersion -Type Microsoft.Storage/storageAccounts
.EXAMPLE
   Using the Full Parameter Set with the -IncludePreview switch:
   Get-AzureRmResourceProviderLatestApiVersion -Type Microsoft.Storage/storageAccounts -IncludePreview
.EXAMPLE
   Using the ProviderAndType Parameter Set:
   Get-AzureRmResourceProviderLatestApiVersion -ResourceProvider Microsoft.Storage -ResourceType storageAccounts
#>
function Get-AzureRmResourceProviderLatestApiVersion
{
    [CmdletBinding()]
    [Alias()]
    [OutputType([string])]
    Param
    (
        [Parameter(ParameterSetName = 'Full', Mandatory = $true, Position = 0)]
        [string]$Type,

        [Parameter(ParameterSetName = 'ProviderAndType', Mandatory = $true, Position = 0)]
        [string]$ResourceProvider,

        [Parameter(ParameterSetName = 'ProviderAndType', Mandatory = $true, Position = 1)]
        [string]$ResourceType,

        [switch]$IncludePreview
    )

    # retrieving the resource providers is time consuming therefore we store
    # them in a script variable to accelerate subsequent requests.
    if (-not $script:resourceProvider)
    {
        $script:resourceProvider = Get-AzureRmResourceProvider
    }

    if ($PSCmdlet.ParameterSetName -eq 'Full')
    {
        $ResourceProvider = ($Type -replace "\/.*")
        $ResourceType = ($Type -replace ".*?\/(.+)", '$1')
    }

    $provider = $script:resourceProvider |
        Where-Object {
        $_.ProviderNamespace -eq $ResourceProvider -and
        $_.ResourceTypes.ResourceTypeName -eq $ResourceType
    }

    if ($IncludePreview)
    {
        $provider.ResourceTypes.ApiVersions[0]
    }
    else
    {
        $provider.ResourceTypes.ApiVersions | Where-Object {
            $_ -notmatch '-preview'
        } | Select-Object -First 1
    }
}
Get-AzureRmResourceProviderLatestApiVersion -Type Microsoft.Storage/storageAccounts