Azure ARM故障转移组数据库的条件关联

时间:2018-04-05 14:36:42

标签: azure azure-resource-manager

我正在开发一个ARM模板,我可以有条件地控制故障转移组中其中一个数据库的关联。这是我的示例资源模板

 {
      "condition": "[variables('Resources').IsFailover]",
      "name": "[variables('SqlServer').FailoverGroup.Name]",
      "type": "failoverGroups",
      "apiVersion": "2015-05-01-preview",
      "location": "[variables('SqlServer').Servers.Primary.ResourceLocation]",
      "tags": 
      {
        "displayName": "Failover Group"
      },
      "properties": 
      {
        "partnerServers": 
        [
          {
            ...
          }
        ],
        "readWriteEndpoint": 
        {
            ....
        },
        "readOnlyEndpoint": 
        {
          "failoverPolicy": "Disabled"
        },
        "databases": 
        [
          "[variables('SqlServer').Databases.DBOne.ResourceId]",
          "[variables('SqlServer').Databases.DBTwo.ResourceId]",
          "[variables('SqlServer').Databases.DBThree.ResourceId]"
        ]
      },
      "dependsOn": 
      [
        "[variables('SqlServer').Servers.Primary.ResourceId]",
        "[variables('SqlServer').Servers.Secondary.ResourceId]",
        "[variables('SqlServer').Databases.DBOne.ResourceId]",
        "[variables('SqlServer').Databases.DBTwo.ResourceId]",
        "[variables('SqlServer').Databases.DBThree.ResourceId]"
      ]
}

我希望实现类似于将DBTwo(数据库)与故障转移组相关联的事情,只有当一个标志(输入参数)为真时,如果标志为假全部来自同一组,则无法关联。

有没有办法从ARM做到这一点?

提前感谢任何建议和意见。

1 个答案:

答案 0 :(得分:0)

是的,手臂模板支持条件(咳嗽,咳嗽)。您可以使用if()函数和其他几个函数(andnotor等)来创建条件。

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-logical

基本的例子:

if(equals(parameter('x'), 'FAILOVER'), true, false)