Aggiungere un'immagine personalizzata in un modello di set di scalabilità di AzureAdd a custom image to an Azure scale set template

Questo articolo illustra come modificare il modello di set di scalabilità a validità minima per la distribuzione da un'immagine personalizzata.This article shows how to modify the minimum viable scale set template to deploy from custom image.

Modificare la definizione del modelloChange the template definition

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.Our minimum viable scale set template can be seen here, and our template for deploying the scale set from a custom image can be seen here. Viene ora esaminato il diff usato per creare questo modello, git diff minimum-viable-scale-set custom-image, passo per passo:Let's examine the diff used to create this template (git diff minimum-viable-scale-set custom-image) piece by piece:

Creazione dell'immagine di un disco gestitoCreating a managed disk image

Se si dispone già di un'immagine di disco gestito personalizzata (una risorsa di tipo Microsoft.Compute/images), è possibile ignorare questa sezione.If you already have a custom managed disk image (a resource of type Microsoft.Compute/images), then you can skip this section.

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.First, we add a sourceImageVhdUri parameter, which is the URI to the generalized blob in Azure Storage that contains the custom image to deploy from.

     },
     "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.Next, we add a resource of type Microsoft.Compute/images, which is the managed disk image based on the generalized blob located at URI sourceImageVhdUri. Questa immagine deve trovarsi nella stessa area del set di scalabilità da cui viene usata.This image must be in the same region as the scale set that uses it. 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:In the properties of the image, we specify the OS type, the location of the blob (from the sourceImageVhdUri parameter), and the storage account type:

   "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:In the scale set resource, we add a dependsOn clause referring to the custom image to make sure the image gets created before the scale set tries to deploy from that image:

       "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 gestitoChanging scale set properties to use the managed disk image

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:In the imageReference of the scale set storageProfile, instead of specifying the publisher, offer, sku, and version of a platform image, we specify the id of the Microsoft.Compute/images resource:

         "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.In this example, we use the resourceId function to get the resource ID of the image created in the same template. Se l'immagine del disco gestito è stata creata in precedenza, è necessario fornire invece l'ID di tale immagine.If you have created the managed disk image beforehand, you should provide the id of that image instead. L'ID deve essere nel formato seguente: /subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Compute/images/<image-name>.This id must be of the form: /subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Compute/images/<image-name>.

Passaggi successiviNext Steps

È possibile distribuire il modello precedente seguendo quanto indicato nella documentazione di Azure Resource Manager.You can deploy the preceding template by following the Azure Resource Manager documentation.

Questa serie di esercitazioni può essere avviata dall'articolo sul modello di set di scalabilità a validità minima.You can start this tutorial series from the minimum viable scale set template article.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità in una rete virtuale esistente.You can see how to modify the minimum viable scale set template to deploy the scale set into an existing virtual network.

È possibile vedere come modificare il modello di set di scalabilità a validità minima per distribuire il set di scalabilità con un'immagine personalizzata.You can see how to modify the minimum viable scale set template to deploy the scale set with a custom image.

È 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.You can see how to modify the minimum viable scale set template to deploy a Linux scale set with guest-based autoscale.

Per informazioni più generali al riguardo, vedere la panoramica sui set di scalabilità.For more general information about scale sets, refer to the scale set overview page.