【发布时间】:2016-04-03 21:21:03
【问题描述】:
我正在考虑定义 API 版本号,看起来我在所有链接模板中引用的某些模板中不断重复,但看起来我在这样做时遇到了麻烦,我不确定这是否应该是可能的更别说怎么做了。
例如,int azuredeploy-shared.json 我可以这样做
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"apiVersion": {
"resources": { "deployments": "2015-01-01" }
}
}
}
然后我可以在azuredeploy.json 中使用它
resources": [
{
"name": "someResource",
"type": "Microsoft.Resources/deployments",
"apiVersion": "[variables('apiVersion').resources.deployments]",
第一个障碍是需要有一个resources 部分。这让我想知道我是否引用了错误的 schema 或者是否应该引用一个。如果我创建了一些我认为是虚拟资源的东西并且假设这个想法有效,那么azuredeploy.json 应该如何引用这个文件?
我可以做类似"[concat(parameters('_artifactsLocation'), '/ProjectName/Templates/azuredeploy-shared-json', parameters('_artifactsLocationSasToken'))]" 的事情,但我不知道它在哪里、如何以及应该仍然有效。因此,工作指针在这方面表示赞赏。我确实看到了How to pass variables between templates - ARM json,但不幸的是我不明白它应该如何工作,也没有链接的 Azure 示例。
【问题讨论】:
-
-
@bmoore-msft 我正在尝试创建一个文件“常量”,我可以将其“包含”在其他文件中,然后使用一些常量变量名引用常量。我注意到我有很多字符串,例如“apiVersion”:“2015-01-01”,一旦工具没有抱怨,我想立即更新它们,例如,在这种情况下使用 ” 2016-03-30"。恐怕我错过了一些简单的事情。我设法“包含”了其他片段(使用那里的
concat东西)并将参数传递给它们,但不是来自它们。也许我应该以某种方式利用outputs指令..?
标签: json azure azure-resource-manager arm-template