“有什么用?”;apiVersion“;azure资源管理器模板的资源部分(资源数组)中的属性?
在中,提到应使用“有什么用?”;apiVersion“;azure资源管理器模板的资源部分(资源数组)中的属性?,azure,azure-resource-manager,Azure,Azure Resource Manager,在中,提到应使用apiVersion属性指定资源的REST API版本 但是,在这个模板中, 这里提到的资源类型Microsoft的api版本。资源/部署是2018-02-01 如果我们查看Microsoft.Resources/deployments的可用版本,我们会看到以下值: 2017-08-012017-06-012017-05-102017-05-012017-03-012016-09-012016-07-012016-06-012016-02-012015-11-012015-01
apiVersion
属性指定资源的REST API版本
但是,在这个模板中,
这里提到的资源类型Microsoft的api版本。资源/部署是2018-02-01
如果我们查看Microsoft.Resources/deployments的可用版本,我们会看到以下值:
2017-08-012017-06-012017-05-102017-05-012017-03-012016-09-012016-07-012016-06-012016-02-012015-11-012015-01-012014-04-01-预览
。我不确定这个2018-02-01
版本是从哪里来的
api版本2018-02-01
用于该模板的嵌套模板中。
(模板链接在“templateLink”属性中给出)
那么,api版本在这个模板资源中意味着什么呢?所以基本上,arm模板只描述了您希望执行的rest api调用的方式和类型。api版本附加到调用路径,因此资源提供程序可以知道您使用的是哪个版本 这个特定的版本要么是打字错误,要么只是内部的东西。可能是区域性的事情。据我所知,这里有仅供内部使用的区域 编辑:我假设您检查了api版本,但我清楚地看到了可用的api版本:
(Get-AzureRmResourceProvider -ProviderNamespace 'Microsoft.Resources').ResourceTypes |
? resourcetypename -eq deployments | ft resourcetypename, apiversions
ResourceTypeName ApiVersions
---------------- -----------
deployments {2018-02-01, 2018-01-01, 2017-08-01, 2017-06-01...}
也许他们还没有更新API版本列表?该参数始终是必需的,因为ARM模板基本上被转换为针对ARM API的一系列请求,这要求您指定所使用的API版本。这将影响可用属性。我们正在使用“2017-05-10”api版本列出“Microsoft.Resources/deployments”类型的可用api版本(如azure rest api文档中所述)。如果我们使用任何无效的api版本来部署此模板,则会显示“ApiVersion”属性无效错误。已更新应答谢谢@4c74356b41。当我们在周五尝试相同的命令时,我们没有得到这个更新版本列表。可能现在他们已经更新了api版本列表,所以在同一命令中没有任何更改,我们可以看到更新的api版本列表。