Azure ARM - передача значений параметров массива в переменные - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь передать массив значений электронной почты и связать его с переменными, чтобы он мог перебирать каждое значение и развертывать. Мое требование - хранить файл параметров отдельно, чтобы я мог касаться файла параметров только в случае какого-либо обновления(больше деталей по электронной почте).Я в конечном итоге с ошибками, пытаясь таким образом.Пожалуйста, помогите мне, как я могу передать.

Ошибки: 1. «Недопустимое значение для параметра шаблона« emailReceiverName »в строке« 1 »и столбце« 487 ».,2. «message»: «По крайней мере, одна операция развертывания ресурса завершилась неудачей. Пожалуйста, перечислите операции развертывания для подробностей.

##### TemplateDeployment.json ######

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
    "actionGroupName": {
      "type": "array",
      "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": {
          "actionGroups": [
        {
            "EmailName": "[array(parameters('emailReceiverName'))]",
            "EmailAddress": "[array(parameters('emailReceiverAddress'))]"
        }
          ]
  } ,
"resources": [
    {
    "type": "Microsoft.Insights/actionGroups",
    "apiVersion": "2018-03-01",
    "name": "actionname",
    "location": "Global",
    "properties": {
        "groupShortName": "short",
        "enabled": true,
        "copy": [
            {
                "name": "emailReceivers",
                "count": "[length(variables('actionGroups'))]",
                "input": {
                    "name": "[variables('actionGroups')[copyIndex('emailReceivers')].EmailName]",
                    "emailAddress": "[variables('actionGroups')[copyIndex('emailReceivers')].EmailAddress]"

                }

                }

        ]
    }
}
    ]
}

** ##### TemplateDeployment.json заканчивается здесь ######

## 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": ["siva1","siva2",........]
        },
        "emailReceiverAddress": {
            "value": ["sa@ga.com","s@g.com",........]
        }

    }
}

1 Ответ

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

хорошо, я не уверен, что правильно вас понял (извините).Но я думаю, что вам просто нужен этот бит:

{
    "name": "emailReceivers",
    "count": "[length(parameters('emailReceiverName'))]",
    "input": {
        "name": "[(parameters('emailReceiverName')[copyIndex('emailReceivers')]]",
        "emailAddress": "[(parameters('emailReceiverAddress')[copyIndex('emailReceivers')]]"
    }
}

и просто отбросьте эту переменную actionGroups

...