使用 ARM 模板创建 Microsoft.Web/serverfarms 资源

creating a Microsoft.Web/serverfarms resource using ARM template

我的 ARM 模板中指定了以下资源:

    {
        "type": "Microsoft.Web/serverfarms",
        "apiVersion": "2015-04-01",
        "name": "[variables('hostingPlanName')]",
        "location": "[parameters('location')]",
        "properties": {
            "name": "[variables('hostingPlanName')]",
            "computeMode": "Dynamic",
            "sku": "Dynamic"
        }
    }

我正在尝试通过以下方式部署此模板:

az group deployment create --resource-group myresgroup --template-file .\template.json --parameters .\parameters.json

我收到以下异常:

Deployment failed. Correlation ID: 19355715-ab4b-4eec-bec7-474c43f02f87. {
  "Code": "BadRequest",
  "Message": "The parameter sku has an invalid value.",
  "Target": null,
  "Details": [
    {
      "Message": "The parameter sku has an invalid value."
    },
    {
      "Code": "BadRequest"
    },
    {
      "ErrorEntity": {
        "ExtendedCode": "51008",
        "MessageTemplate": "The parameter {0} has an invalid value.",
        "Parameters": [
          "sku"
        ],
        "Code": "BadRequest",
        "Message": "The parameter sku has an invalid value."
      }
    }
  ],
  "Innererror": null
}

我做错了什么?

要创建服务计划(不是 ASE),您可以参考下面的模板,它在我这边很好用。

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "String"
        },
        "location": {
            "type": "String"
        },
        "sku": {
            "type": "String"
        },
        "skucode": {
            "type": "String"
        },
        "workerSize": {
            "type": "String"
        },
        "workerSizeId": {
            "type": "String"
        },
        "numberOfWorkers": {
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Web/serverfarms",
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            },
            "kind": "",
            "name": "[parameters('name')]",
            "apiVersion": "2016-03-01",
            "location": "[parameters('location')]",
            "properties": {
                "name": "[parameters('name')]",
                "workerSize": "[parameters('workerSize')]",
                "workerSizeId": "[parameters('workerSizeId')]",
                "numberOfWorkers": "[parameters('numberOfWorkers')]",
                "reserved": false
            }
        }
    ]
}

我的测试参数:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "value": "joytestplan1"
        },
        "location": {
            "value": "Central US"
        },
        "sku": {
            "value": "Free"
        },
        "skucode": {
            "value": "F1"
        },
        "workerSize": {
            "value": "0"
        },
        "workerSizeId": {
            "value": "0"
        },
        "numberOfWorkers": {
            "value": "1"
        }
    }
}

sku 不是 properties 的一部分,而是一个单独的字段。将其移出,它应该可以工作:

{
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2015-04-01",
    "name": "[variables('hostingPlanName')]",
    "location": "[parameters('location')]",
    "sku": "Dynamic",
    "properties": {
        "name": "[variables('hostingPlanName')]",
        "computeMode": "Dynamic"
    }
}

最新的"apiVersion": "2016-09-01",和旧的不一样,应该这样写。

            "sku": {
                "name": "XY1",
                "tier": "Dynamic",
                "size": "XY1",
                "family": "XY",
                "capacity": 0
            },