0

我正在尝试创建 ARM 模板,以使用上面的模板作为参考,按照下面的方法在 Resources 中添加扩展和扩展属性。其他资源已创建,但 ARM 无法在我的 VMSS 模板中创建任何类型的自动缩放组。

{
            "type": "microsoft.insights/autoscalesettings",
            "apiVersion": "2015-04-01",
            "name": "AutoScaleSet",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[resourceId('Microsoft.Compute/virtualMachineScaleSets/', parameters('VMSS_Name'))]"
            ],
            "properties": {
                "name": "autoscalehost",
                "targetResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets/', parameters('VMSS_Name'))]",
                "enabled": true,
                "profiles": [
                    {
                        "name": "autoscalehost",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [
                            {
                                "metricTrigger": {
                                    "metricName": "Percentage CPU",
                                    "metricResourceUri": "[concat('Microsoft.Compute/virtualMachineScaleSets', parameters('VMSS_Name'))]",
                                    "timeGrain": "PT1M",
                                    "statistic": "Average",
                                    "timeWindow": "PT5M",
                                    "timeAggregation": "Average",
                                    "operator": "GreaterThan",
                                    "threshold": 50
                                },
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                }
                            },
                            {
                                "metricTrigger": {
                                    "metricName": "Percentage CPU",
                                    "metricResourceUri": "[concat('Microsoft.Compute/virtualMachineScaleSets', parameters('VMSS_Name'))]",
                                    "timeGrain": "PT1M",
                                    "statistic": "Average",
                                    "timeWindow": "PT5M",
                                    "timeAggregation": "Average",
                                    "operator": "LessThan",
                                    "threshold": 30
                                },
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                }
                            }
                        ]
                    }
                ]
            }
        }
4

1 回答 1

0

我可以在这里看到两个单独的问题:

1) 自动缩放设置的名称在一个位置是“AutoScaleSet”,在另一个位置是“autoscalehost”

    {
          "type": "microsoft.insights/autoscalesettings",
          "apiVersion": "2015-04-01",
HERE -->  "name": "AutoScaleSet",             
          "location": "[parameters('location')]",
          "dependsOn": [
            "[resourceId('Microsoft.Compute/virtualMachineScaleSets/', parameters('VMSS_Name'))]"
          ],
          "properties": {
HERE -->    "name": "autoscalehost",
            "targetResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets/', parameters('VMSS_Name'))]",
            "enabled": true
          }

这需要是相同的值,否则部署将失败并出现以下错误:

{
  "code": "BadRequest",
  "message": "The autoscale setting that you provided does not have the same name as the name in the request. Name in autoscale setting: autoscalehost. Name in the request: AutoScaleSet"
}

2)没有为metricTrigger规则提供正确的资源ID

  {
    "metricTrigger": {
    "metricName": "Percentage CPU",
--> "metricResourceUri": "[concat('Microsoft.Compute/virtualMachineScaleSets', parameters('VMSS_Name'))]", <--
    "timeGrain": "PT1M"
  }

您在此处需要完整的资源 ID。不仅提供者名称 + VMSS 的名称。否则部署将失败并出现以下错误:

{
  "code": "LinkedInvalidPropertyId",
  "message": "Property id 'Microsoft.Compute/virtualMachineScaleSetssotest' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'."
}

使用该resourceId()函数而不是concat()在您的模板中,如下所示:

[resourceId('Microsoft.Compute/virtualMachineScaleSets/', parameters('VMSS_Name'))]
于 2021-06-22T12:59:18.703 回答