【发布时间】:2017-12-06 18:30:58
【问题描述】:
我对在 ARM 模板中在何处使用变量以及在何处使用参数感到困惑。我们如何打这个电话?
引用的脚本同时使用两者。我更好奇使用变量的合理性。
参考
Service Fabric Azure 部署脚本示例
【问题讨论】:
标签: azure continuous-deployment azure-resource-manager azure-resource-group azure-template
我对在 ARM 模板中在何处使用变量以及在何处使用参数感到困惑。我们如何打这个电话?
引用的脚本同时使用两者。我更好奇使用变量的合理性。
参考
Service Fabric Azure 部署脚本示例
【问题讨论】:
标签: azure continuous-deployment azure-resource-manager azure-resource-group azure-template
在 Azure 模板 json 文件中:
参数:执行部署时提供的值,用于自定义资源部署。
变量:在模板中用作 JSON 片段以简化模板语言表达式的值。
更多信息请参考本官方文档:Understand the structure and syntax of Azure Resource Manager templates。
我更好奇使用变量的合理性。
根据我的经验,如果只使用一次变量,则不需要使用变量。但是如果你想多次使用变量,你最好使用变量。使用变量可以简化您的模板以避免内容重复。
例如,如果您不多次使用 supportLogStorageAccountName,您可以这样做:
"name": "[toLower(concat('sf', uniqueString(resourceGroup().id),'2'))]"
但是,如果您多次\多次使用提供变量supportLogStorageAccountName,您可以使用变量来避免重复。
【讨论】:
New-AzResourceGroupDeployment -Name EgDeployment -ResourceGroupName EgRG -TemplateFile azuredeploy.json -TemplateParameterFile parameters.json。参考 - Parameters File
ARM 模板通常用于创建一组接近相同的环境。参数是它们的不同之处。这通常用于环境类型(产品、开发、测试)和性能/成本相关参数。 变量用于根据参数或根据参数计算来为服务创建唯一名称。
这方面的一个例子是存储帐户的名称。这通常通过连接像 _storage 这样的通用名称和像“test”这样的环境名称参数并将其存储在变量中来完成。当您创建另一个环境时,您必须做的就是更改环境类型参数。
【讨论】: