ARM模板数组参数

时间:2017-11-23 10:19:13

标签: arrays azure arm-template

我有一个带有网络应用警报规则的ARM模板,我希望能够配置哪些电子邮件获取警报。

电子邮件警报操作的代码段为:

"action": {
    "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
    "sendToServiceOwners": false,
    "customEmails": [
        "email1@example.com",
        "email2@example.com"
    ]
}

相同的模板用于设置生产,测试和开发环境。所以我想使用一个参数进行电子邮件警报。

如何基于逗号分隔的字符串或数组类型参数生成要用作"customEmails"属性的数组?

我尝试过"customEmails": "[array(parameters('AlertEmailRecipients'))]",还有

"customEmails": [
    [array(parameters('AlertEmailRecipients'))]
]
但是没有工作。我不知道如何告诉它" customEmails"属性值应来自参数。

2 个答案:

答案 0 :(得分:2)

我通过数组使用了以下内容: 参数声明:

"customEmails": {
      "type": "array",
      "metadata": {
        "description": "alert email addressess"
      }
}

在参数文件中:

"customEmails": {
      "value": [
        "email1@domain.com",
        "email2@domain.com",
      ]
    }

用法:

"customEmails": "[parameters('customEmails')]"

答案 1 :(得分:1)

我找到了解决方案。主要问题是我的逗号分隔的电子邮件地址列表在每个逗号后面都有一个空格。

我现在实现它的方式是这样的:

使用逗号分隔的电子邮件地址列表定义字符串参数。 列表中没有空格

定义一个这样的变量:

"customEmails" : "[split(parameters('AlertEmailRecipients'), ',')]"

然后在警报操作中引用该变量:

"action": {
    "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
    "sendToServiceOwners": false,
    "customEmails": "[variables('customEmails')]"
}

example实际上是这样做的,但没有说清楚电子邮件列表中不能包含逗号。