2017-06-01 3 views
-1

Ich versuche, die folgende API-Verwaltung über ARM mit der folgenden Vorlage bereitzustellen (beachten Sie speziell das apiVersion-Datum vom 07.07.2016). Dies führt zu dem Fehler:Azure API Management ARM-Vorlage: skuproperties kann nicht null sein

Invalid parameter: Value cannot be null.\r\nParameter name: skuproperties

{ 
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
"contentVersion": "1.0.0.0", 
"parameters": { 
    "apimSettings": { 
     "type": "object", 
     "defaultValue": { 
      "sku": "Developer", 
      "skuCount": "1", 
      "publisherName": "", 
      "publisherEmail": "" 
     } 
    } 
}, 
"variables": { 
    "apiManagementServiceName": "[concat('apim', uniqueString(resourceGroup().id))]" 
}, 
"resources": [{ 
    "apiVersion": "2016-07-07", 
    "name": "[variables('apiManagementServiceName')]", 
    "type": "Microsoft.ApiManagement/service", 
    "location": "[resourceGroup().location]", 
    "properties": { 
     "sku": { 
      "name": "[parameters('apimSettings').sku]", 
      "capacity": "[parameters('apimSettings').skuCount]" 
     }, 
     "publisherEmail": "[parameters('apimSettings').publisherEmail]", 
     "publisherName": "[parameters('apimSettings').publisherName]" 
    } 
}], 
"outputs": { 
    "apimUri" : { 
     "type": "object", 
     "value": "[reference(variables('apiManagementServiceName'))]" 
    } 
} 

}

Die schema for that version of API Management zeigt nicht 'skuProperties'. Beachten Sie, dass die Bereitstellung funktioniert, wenn ich die alte Version 2014-02-14 verwende. Ich habe auch darauf hingewiesen, dass die deployment template schema verweist auf das neuere API-Management-Schema.

Natürlich will es "skuproperties" aber wie würde ich wissen, was ich dort zur Verfügung stellen?

Antwort

0

dies ist, wie Sie es verwenden:

{ 
     "type": "Microsoft.ApiManagement/service", 
     "sku": { 
      "name": "Developer", 
      "capacity": 1 
     }, 
     "name": "[parameters('name')]", 
     "apiVersion": "2016-10-10", 
     "location": "[parameters('location')]", 
     "properties": { 
      "publisherEmail": "[parameters('adminEmail')]", 
      "publisherName": "[parameters('orgName')]" 
     } 
    } 

Dies ist die description of the API Management API model ist. Wie Sie sehen können, verwendet 2016-10-10 und das Objekt ähnlich wie ich beschrieben habe. Deshalb funktioniert es so.

+0

ja, das funktioniert, aber die Frage war die Version 2016-07-07, die vermutlich mit zusätzlichen Funktionen kommt. Versuchen Sie, das oben genannte als apiVersion auszuführen. –

+0

auch, http://schema.management.azure.com/schemas/2016-10-10/Microsoft.ApiManagement.json ist ein 404; also warum ist diese apiVersion gültig? –

+0

Ich bin kein Microsoft-Mitarbeiter, ich bin nicht vertraut mit dem Backend-Code \ Logik, die sie haben. Ich habe dir gesagt, wie es gemacht ist, ich weiß nicht, warum es so gemacht wurde. Verwenden Sie nicht 2017-07-07 API-Version, das ist es. – 4c74356b41

Verwandte Themen