Copyindex при развертывании ресурсов панели мониторинга Azure ARM - PullRequest
0 голосов
/ 04 января 2019

Я развертываю пользовательскую панель мониторинга Azure с плиткой, которая использует ресурс. Для вызова ресурса я использую следующий код

"[resourceId(parameters('analysisServiceResourceGroup'), '/Microsoft.AnalysisServices/servers', parameters('analysisServiceName'))]"

Но в одной из плиток мне нужно несколько ресурсов, поэтому я попытался что-то сделать, чтобы создать файл параметров со следующим значением

 "analysisService": {
        "value": [
            {
                "ResourceGroup": "RG",
                "Name": "analysis1",
                "Color": "#47BDF5"
            },
            {
                "ResourceGroup": "RG",
                "Name": "analysis2",
                "Color": "#7E58FF"
            },
            {
                "ResourceGroup": "RG",
                "Name": "analysis3",
                "Color": "#EB9371"
            }
        ]
    },

В моем шаблоне панели инструментов я использую следующий код для получения имени и группы ресурсов.

 "resourceId": "[resourceId(parameters('analysisService')[copyIndex()].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex()].Name)]"

Проблема, с которой я столкнулся в данный момент, не находится в нужном месте. Я получил эту ошибку

'Функция шаблона' copyIndex 'не ожидается в этом месте. Функция может использоваться только в ресурсе с указанной копией. Пожалуйста, смотрите https://aka.ms/arm-copy для подробностей использования. '"

Это говорит о том, что мой блок индекса копирования не используется в правильном браслете ресурса, но я не знаю, где я могу разместить этот индекс индекса, пытался поместить его в любое возможное место, где индекс копирования может получить к нему доступ, но ничего не работает Кто-нибудь знает, что я делаю неправильно или что я делаю неправильно? Возможно, что copyindex не работает внутри ресурса панели мониторинга.

код

 "12": {
            "position": {
              "x": 12,
              "y": 9,
              "colSpan": 6,
              "rowSpan": 4
            },
            "metadata": {
              "inputs": [
                {
                  "name": "sharedTimeRange",
                  "isOptional": true
                },
                {
                  "name": "options",
                  "value": {
                    "charts": [
                      {
                        "metrics": [
                          {
                            "name": "CurrentUserSessions",
                            "resourceMetadata": {
                              "resourceId": "[resourceId(parameters('analysisService')[copyIndex()].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex()].Name)]"
                            },
                            "aggregationType": 1,


"copy": {
                "name": "AnalysisServiceCopy",
                "count": "[length(parameters('analysisService'))]"
              },

                          }
                        ],
                        "title": "Avg Current User Sessions for analysis1, analysis1, and analysis1",
                        "visualization": {
                          "chartType": 2,
                          "legend": {
                            "isVisible": true,
                            "position": 2,
                            "hideSubtitle": false
                          },
                          "axis": {
                            "x": {
                              "isVisible": true,
                              "axisType": 2,
                              "min": 1546508634047,
                              "max": 1546595034047
                            },
                            "y": {
                              "isVisible": true,
                              "axisType": 1
                            }
                          },
                          "timeBrushEnable": false
                        },
                        "itemDataModel": {
                          "id": "3464BA29-9AF2-4EAE-9CF4-A246059DDF46",
                          "chartHeight": 1,
                          "metrics": [
                            {
                              "id": {
                                "resourceDefinition": {
                                  "id": "[resourceId(parameters('analysisService')[copyIndex()].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex()].Name)]"
                                },
                                "name": {
                                  "id": "CurrentUserSessions",
                                  "displayName": "Current User Sessions"
                                },
                                "namespace": {
                                  "name": "microsoft.analysisservices/servers"
                                }
                              },
                              "metricAggregation": 4,
                              "color": "[parameters('analysisService')[copyIndex()].Color]"

,
 "copy": {
                "name": "AnalysisServiceCopy",
                "count": "[length(parameters('analysisService'))]"
              },

                            }
                          ],
                          "priorPeriod": false,
                          "horizontalBars": true,
                          "showOther": false,
                          "aggregation": 1,
                          "palette": "multiColor",
                          "jsonDefinitionId": "59DCE403-7D8D-4E9F-9CDA-7AE7AC9D9220",
                          "version": {
                            "major": 1,
                            "minor": 0,
                            "build": 0
                          },
                          "filters": {
                            "filterType": 0,
                            "id": "C81486BB-3934-48C7-9251-A4EE633DB2BB",
                            "OperandFilters": [],
                            "LogicalOperator": 0
                          },
                          "yAxisOptions": {
                            "options": 1
                          },
                          "title": "Avg Current User Sessions for analysis1, analysis1, and analysis1",
                          "titleKind": "Auto",
                          "visualization": {
                            "chartType": 2,
                            "legend": {
                              "isVisible": true,
                              "position": 2,
                              "hideSubtitle": false
                            },
                            "axis": {
                              "x": {
                                "isVisible": true,
                                "axisType": 2,
                                "min": 1546508634047,
                                "max": 1546595034047
                              },
                              "y": {
                                "isVisible": true,
                                "axisType": 1
                              }
                            },
                            "timeBrushEnable": false
                          }
                        }
                      }
                    ],
                    "v2charts": true,
                    "version": 1
                  },
                  "isOptional": true
                }
              ],
              "type": "Extension/HubsExtension/PartType/MonitorChartPart",
              "settings": {
                "content": {
                  "options": {
                    "charts": [
                      {
                        "metrics": [
                          {
                            "name": "CurrentUserSessions",
                            "resourceMetadata": {
                              "resourceId": "[resourceId(parameters('analysisService')[copyIndex()].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex()].Name)]"
                            },
                            "aggregationType": 1

,
 "copy": {
                "name": "AnalysisServiceCopy",
                "count": "[length(parameters('analysisService'))]"
              },
                          }
                        ],
                        "title": "Avg Current User Sessions for analysis1, analysis1, and analysis1",
                        "visualization": {
                          "chartType": 2,
                          "legend": {
                            "isVisible": true,
                            "position": 2,
                            "hideSubtitle": false
                          },
                          "axis": {
                            "x": {
                              "isVisible": true,
                              "axisType": 2,
                              "min": 1546508634047,
                              "max": 1546595034047
                            },
                            "y": {
                              "isVisible": true,
                              "axisType": 1
                            }
                          },
                          "timeBrushEnable": false
                        },
                        "itemDataModel": {
                          "id": "3464BA29-9AF2-4EAE-9CF4-A246059DDF46",
                          "chartHeight": 1,
                          "metrics": [
                            {
                              "id": {
                                "resourceDefinition": {
                                  "id": "[resourceId(parameters('analysisService')[copyIndex()].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex()].Name)]"
                                },
                                "name": {
                                  "id": "CurrentUserSessions",
                                  "displayName": "Current User Sessions"
                                },
                                "namespace": {
                                  "name": "microsoft.analysisservices/servers"
                                }
                              },
                              "metricAggregation": 4,
                              "color": "[parameters('analysisService')[copyIndex()].Color]"

,
 "copy": {
                "name": "AnalysisServiceCopy",
                "count": "[length(parameters('analysisService'))]"
              },
                            }
                          ],
                          "priorPeriod": false,
                          "horizontalBars": true,
                          "showOther": false,
                          "aggregation": 1,
                          "palette": "multiColor",
                          "jsonDefinitionId": "59DCE403-7D8D-4E9F-9CDA-7AE7AC9D9220",
                          "version": {
                            "major": 1,
                            "minor": 0,
                            "build": 0
                          },
                          "filters": {
                            "filterType": 0,
                            "id": "C81486BB-3934-48C7-9251-A4EE633DB2BB",
                            "OperandFilters": [],
                            "LogicalOperator": 0
                          },
                          "yAxisOptions": {
                            "options": 1
                          },
                          "title": "Avg Current User Sessions for analysis1, analysis1, and analysis1",
                          "titleKind": "Auto",
                          "visualization": {
                            "chartType": 2,
                            "legend": {
                              "isVisible": true,
                              "position": 2,
                              "hideSubtitle": false
                            },
                            "axis": {
                              "x": {
                                "isVisible": true,
                                "axisType": 2,
                                "min": 1546508634047,
                                "max": 1546595034047
                              },
                              "y": {
                                "isVisible": true,
                                "axisType": 1
                              }
                            },
                            "timeBrushEnable": false
                          }
                        },
                        "disablePinning": true
                      }
                    ],
                    "v2charts": true,
                    "version": 1
                  }
                }
              }
            }
          },
          "copy": {
            "name": "AnalysisServiceCopy",
            "count": "[length(parameters('analysisService'))]"
          },

Ответы [ 2 ]

0 голосов
/ 04 января 2019

@ 4c74356b41

Я попробовал вот так, прямо под копией я получаю зеленую строку с ошибкой, что эта переменная никогда не используется.

"variables": {
"copy": [
  {
    "name": "metrics",
    "count": "[length(parameters('analysisService'))]",
    "input": {
      "name": "qpu_metric",
      "resourceMetadata": {
        "resourceId": "[resourceId(parameters('analysisService')[copyIndex('metrics')].ResourceGroup, 'Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex('metrics')].Name)]"
      },
      "aggregationType": 1
    }
  }
]

},

В моем коде я называю переменную следующим образом

  "charts": [
                          {
                            "metrics" : "[variables('metrics')]",
                            "title": "Avg QPU",
                            "visualization": {
0 голосов
/ 04 января 2019

поэтому, как правило, вы можете использовать цикл копирования только для создания массивов, а не для объектов, поэтому для построения массива метрик вы должны сделать что-то вроде этого:

"charts": [
    {
        "copy": [
            {
                "name": "metrics",
                "count": "[length(parameters('analysisService'))]",
                "input": {
                    "name": "CurrentUserSessions",
                    "resourceMetadata": {
                        "resourceId": "[resourceId(parameters('analysisService')[copyIndex('metrics')].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex('metrics')].Name)]"
                    },
                    "aggregationType": 1
                }
            }
        ],
        "title": "Avg Current User Sessions for analysis1, analysis1, and analysis1",
        "visualization": { redacted for brievity },
        "itemDataModel": { redacted for brievity },
        "disablePinning": true
    }
],

вам нужно будет делать это везде, где вам нужно создать массив. В качестве обходного пути (если они идентичны), вы можете использовать ту же конструкцию для создания переменной и использовать эту переменную:

"variables": {
    "copy": [
        {
            "name": "metrics",
            "count": "[length(parameters('analysisService'))]",
            "input": {
                "name": "CurrentUserSessions",
                "resourceMetadata": {
                    "resourceId": "[resourceId(parameters('analysisService')[copyIndex('metrics')].ResourceGroup, '/Microsoft.AnalysisServices/servers', parameters('analysisService')[copyIndex('metrics')].Name)]"
                },
                "aggregationType": 1
            }
        }
    ],
}

вышеизложенное создаст переменную с именем "metrics", которую вы можете использовать в любом месте шаблона, например:

"[variables('metrics')]"
...