部署仪表板资源Azure ARM中的Copyindex

时间:2019-01-04 13:25:55

标签: azure arm-template

我正在部署一个自定义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 :(得分:1)

因此,作为一般规则,您只能使用复制循环来创建数组,而不能使用对象,因此要构建指标数组,您将执行以下操作:

"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')]"

答案 1 :(得分:0)

@ 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": {