Параметры как массив copy () не работают в ресурсе - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь отправить массив значений электронной почты в качестве параметров и пытаюсь развернуть «группу действий» с помощью «Копировать» в шаблоне ресурса. Мой шаблон группы действий развертывается без ошибок, но поля электронной почты пусты.Я передавал два значения электронной почты в качестве параметров.Я застрял с этим на один день.Было бы замечательно, если бы кто-то зажег огонь, когда я иду не так.

Template.json:

{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
    "actionGroupName": {
        "type": "string",
        "defaultValue": "newActionGroup",
        "metadata": {
            "description": "Unique name (within the Resource Group) for the Action group."
        }
    },
    "actionGroupShortName": {
        "type": "string",
        "defaultValue": "newActionGroup",
        "metadata": {
            "description": "Short name (maximum 12 characters) for the Action group."
        }
    },
    "emailReceiverName": {
        "type": "array",
        "metadata": {
            "description": "email receiver service Name."
        }
    },
    "emailReceiverAddress": {
        "type": "array",
        "metadata": {
            "description": "email receiver address."
        }
    }
},
"variables": {
    "customemailReceiverName": "[array(parameters('emailReceiverName'))]",
    "customemailReceiverAddress": "[parameters('emailReceiverAddress')]"
},
"resources": [
    {
        "type": "Microsoft.Insights/actionGroups",
        "name": "[parameters('actionGroupName')]",
        "apiVersion": "2018-03-01",
        "location": "Global",
        "properties": {
            "groupShortName": "[parameters('actionGroupShortName')]",
            "copy": [
                {
                    "name": "counts",
                    "count": "[length(parameters('emailReceiverName'))]",
                    "input": {
                        "emailReceivers": [
                            {
                                "name": "[parameters('emailReceiverName')[copyIndex('counts')]",
                                "emailAddress": "[parameters('emailReceiverAddress')[copyIndex('counts')]]"
                            }
                        ]
                    }
                }
            ]
        }
    }
] }

Parameter.json:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "actionGroupName": {
            "value": "actiongroupslb"
        },
        "actionGroupShortName": {
            "value": "agSLB"
        },
        "emailReceiverName": {
            "value": ["siva","siva1"]
        },
        "emailReceiverAddress": {
            "value": ["siva@gmail.com","svaji@gmail.com"]
        }

    }
}

Группа действий создана с отсутствующими значениями электронной почты

1 Ответ

0 голосов
/ 30 ноября 2018

Вот что работает для меня:

    {
        "type": "Microsoft.Insights/actionGroups",
        "apiVersion": "2018-03-01",
        "name": "[variables('actionGroups')[copyIndex()].Name]",
        "copy": {
            "name": "ActionGroupCopy",
            "count": "[length(parameters('emailReceiverName'))]"
        },
        "location": "Global",
        "properties": {
            "groupShortName": "[variables('actionGroups')[copyIndex()].Name]",
            "enabled": true,
            "emailReceivers": [
                {
                    "name": "[variables('actionGroups')[copyIndex()].EmailName]",
                    "emailAddress": "[variables('actionGroups')[copyIndex()].EmailAddress]"
                }
            ]
        }
    },

Вот переменная:

    "actionGroups": [
        {
            "Name": "teamname",
            "EmailAddress": "email@domain.com",
            "EmailName": "emailname"
        },
        {
            "Name": "teamname1",
            "EmailAddress": "email1@domain.com",
            "EmailName": "emailname1"
        }
    ],

Если вам нужно несколько получателей, используйте функцию копирования свойства ресурса, а не ресурс:

{
    "type": "Microsoft.Insights/actionGroups",
    "apiVersion": "2018-03-01",
    "name": "name",
    "location": "Global",
    "properties": {
        "groupShortName": "name",
        "enabled": true,
        "copy": [
            {
                "name": "emailReceivers",
                "count": "[length(parameters('emailReceiverName'))]",
                "input": {
                    "name": "[parameters('emailReceiverName')[copyIndex('emailReceivers')]]",
                    "emailAddress": "[parameters('emailReceiverAddress')[copyIndex('emailReceivers')]]"
                }
            }
        ]
    }
},

это предполагает, что они отображают 1-к-1

...