ARM模板数组参数

ARM template array parameter

我有一个带有 Web 应用警报规则的 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" 属性 值应该来自参数。

我找到了解决办法。主要问题是我的逗号分隔电子邮件地址列表在每个逗号后有一个 space。

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

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

像这样定义一个变量:

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

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

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

example 实际上是这样做的,但没有明确指出电子邮件列表不能包含 spaces。

我使用了以下数组参数:

参数声明:

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

在参数文件中:

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

用法:

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