Aggiungere un'immagine personalizzata in un modello di set di scalabilità di Azure

Questo articolo illustra come modificare il modello di set di scalabilità a validità minima per la distribuzione da un'immagine personalizzata.

Modificare la definizione del modello

Il modello di set di scalabilità a validità minima è disponibile qui, mentre il modello per la distribuzione del set di scalabilità da un'immagine personalizzata è disponibile qui. Viene ora esaminato il diff usato per creare questo modello, git diff minimum-viable-scale-set custom-image, passo per passo:

Creazione dell'immagine di un disco gestito

Se si dispone già di un'immagine di disco gestito personalizzata (una risorsa di tipo Microsoft.Compute/images), è possibile ignorare questa sezione.

Prima di tutto si aggiunge un parametro sourceImageVhdUri, ovvero l'URI del BLOB generalizzato in Archiviazione di Azure contenente l'immagine personalizzata da usare per la distribuzione.

     },
     "adminPassword": {
       "type": "securestring"
+    },
+    "sourceImageVhdUri": {
+      "type": "string",
+      "metadata": {
+        "description": "The source of the generalized blob containing the custom image"
+      }
     }
   },
   "variables": {},

Poi si aggiunge una risorsa di tipo Microsoft.Compute/images, ovvero l'immagine del disco gestito basata sul BLOB generalizzato presente nell'URI sourceImageVhdUri. Questa immagine deve trovarsi nella stessa area del set di scalabilità da cui viene usata. Nelle proprietà dell'immagine, si specifica il tipo di sistema operativo, la posizione del BLOB (ottenuta dal parametro sourceImageVhdUri) e il tipo di account di archiviazione:

   "resources": [
     {
+      "type": "Microsoft.Compute/images",
+      "apiVersion": "2016-04-30-preview",
+      "name": "myCustomImage",
+      "location": "[resourceGroup().location]",
+      "properties": {
+        "storageProfile": {
+          "osDisk": {
+            "osType": "Linux",
+            "osState": "Generalized",
+            "blobUri": "[parameters('sourceImageVhdUri')]",
+            "storageAccountType": "Standard_LRS"
+          }
+        }
+      }
+    },
+    {
       "type": "Microsoft.Network/virtualNetworks",
       "name": "myVnet",
       "location": "[resourceGroup().location]",

Nella risorsa del set di scalabilità, si aggiunge una clausola dependsOn che fa riferimento all'immagine personalizzata, in modo da essere certi che l'immagine venga creata prima che il set di scalabilità tenti la distribuzione da tale immagine:

       "location": "[resourceGroup().location]",
       "apiVersion": "2016-04-30-preview",
       "dependsOn": [
-        "Microsoft.Network/virtualNetworks/myVnet"
+        "Microsoft.Network/virtualNetworks/myVnet",
+        "Microsoft.Compute/images/myCustomImage"
       ],
       "sku": {
         "name": "Standard_A1",

Modifica delle proprietà del set di scalabilità per usare l'immagine del disco gestito

In imageReference del set di scalabilità storageProfile, anziché specificare entità di pubblicazione, offerta, SKU e versione di un'immagine della piattaforma, si specifica l'id della risorsa Microsoft.Compute/images:

         "virtualMachineProfile": {
           "storageProfile": {
             "imageReference": {
-              "publisher": "Canonical",
-              "offer": "UbuntuServer",
-              "sku": "16.04-LTS",
-              "version": "latest"
+              "id": "[resourceId('Microsoft.Compute/images', 'myCustomImage')]"
             }
           },
           "osProfile": {

In questo esempio, viene usata la funzione resourceId per ottenere l'ID dell'immagine creata nello stesso modello. Se l'immagine del disco gestito è stata creata in precedenza, è necessario fornire invece l'ID di tale immagine. L'ID deve essere nel formato seguente: /subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Compute/images/<image-name>.

Passaggi successivi

È possibile distribuire il modello precedente seguendo quanto indicato nella documentazione di Azure Resource Manager.

Questa serie di esercitazioni può essere avviata dall'articolo sul modello di set di scalabilità a validità minima.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità in una rete virtuale esistente.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità con un'immagine personalizzata.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire un set di scalabilità Linux con scalabilità automatica basata su guest.

Per informazioni più generali al riguardo, vedere la panoramica sui set di scalabilità.