【问题标题】:how to deploy an azure ARM template without changing existing sku如何在不更改现有 sku 的情况下部署 azure ARM 模板
【发布时间】:2018-10-17 04:26:31
【问题描述】:

我正在寻找一种方法来创建但不更新由 ARM 模板部署的 PaaS sql 服务器的 SKU,但是仍然希望部署模板中的所有其他更改。

我有一个 ARM 模板,代表我当前的基础架构堆栈,它作为我们 CI 的一部分进行部署。 文件中指定的内容之一是我们的 PaaS 数据库的大小比例,例如:

"sku": {
   "name": "BC_Gen4",
   "tier": "BusinessCritical",
   "family": "Gen4",
   "capacity": 2
}

由于临时的高工作量,我已将 cpu 的数量扩展到 4 个(甚至 8 个)。有什么方法可以部署不会强制将我的数据库缩减回指定 sku 的模板?

resources.azure.com 显示还有其他与缩放相关的属性。 理想情况下,这将设置为“如果此资源不存在,则将其设置为 X,否则使用现有的 currentServiceObjectiveName/currentSku”

"kind": "v12.0,user,vcore",
"properties": {
  "currentServiceObjectiveName": "BC_Gen4_2",
  "requestedServiceObjectiveName": "BC_Gen4_2",
  "currentSku": {
    "name": "BC_Gen4",
    "tier": "BusinessCritical",
    "family": "Gen4",
    "capacity": 2
  }
}

目前我们的基础架构是通过 VSTS Azure Resource Group Deployment V2.* 在“创建或更新资源组,完成”模式下部署的。

【问题讨论】:

  • 我突然想到了一个想法,您也许可以使用reference(xx,xx,'full') 提取当前的 sku,但您需要一个嵌套模板(我相信)才能使其工作
  • "引用函数从运行时状态派生出它的值,因此不能用在变量部分。它可以用在模板或链接模板的输出部分。不能用于嵌套模板的输出部分。要在嵌套模板中返回已部署资源的值,请将嵌套模板转换为链接模板。” --docs.microsoft.com/en-us/azure/azure-resource-manager/…。谢谢@4c74356b41 看起来使用参考功能可能是一种前进的方式(使用链接模板)
  • 是的,没有他们你就无法做到这一点

标签: azure azure-resource-manager


【解决方案1】:

这在 arm 模板中是不可能的,您必须使用外部资源来做出决定,而不是 arm 模板。而且你不能真正在arm模板中拉取数据,所以你可能需要从外部拉取SKU并将其传递给模板

【讨论】:

    猜你喜欢
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多