Delen via


Gebruikersgegevens voor virtuele Azure-machine

Met gebruikersgegevens kunt u uw eigen scripts of metagegevens doorgeven aan uw virtuele machine.

Wat zijn 'gebruikersgegevens'

Gebruikersgegevens zijn een set scripts of andere metagegevens die tijdens het inrichten worden ingevoegd op een virtuele Azure-machine. Elke toepassing op de virtuele machine heeft na inrichting toegang tot de gebruikersgegevens van de Azure Instance Metadata Service (IMDS).

Gebruikersgegevens zijn een nieuwe versie van aangepaste gegevens en bieden extra voordelen:

  • Gebruikersgegevens kunnen na inrichting worden opgehaald uit Azure Instance Metadata Service (IMDS).

  • Gebruikersgegevens zijn permanent. Deze is beschikbaar tijdens de levensduur van de VM.

  • Gebruikersgegevens kunnen worden bijgewerkt van buiten de VM, zonder de VM te stoppen of opnieuw op te starten.

  • Gebruikersgegevens kunnen worden opgevraagd via GET VM/VMSS API met $expand optie.

Als gebruikersgegevens niet worden toegevoegd tijdens het inrichten, kunt u deze ook nog steeds toevoegen na het inrichten.

Beveiligingswaarschuwing

Waarschuwing

Gebruikersgegevens worden niet versleuteld en elk proces op de VM kan query's uitvoeren op deze gegevens. U moet geen vertrouwelijke informatie opslaan in gebruikersgegevens.

Zorg ervoor dat u de nieuwste Azure Resource Manager-API hebt om de nieuwe functies voor gebruikersgegevens te gebruiken. De inhoud moet base64-gecodeerd zijn voordat deze wordt doorgegeven aan de API. De grootte mag niet groter zijn dan 64 kB.

Gebruikersgegevens maken voor Azure VM/VMSS

Gebruikersgegevens toevoegen bij het maken van een nieuwe VM

Gebruik deze Azure Resource Manager-sjabloon om een nieuwe VM met gebruikersgegevens te maken. Als u rest API gebruikt, voegt u voor afzonderlijke VM's 'UserData' toe aan de sectie 'properties' met de PUT-aanvraag om de VM te maken.

{
  "name": "testVM",
  "location": "West US",
  "properties": {
    "hardwareProfile": {
      "vmSize": "Standard_A1"
    },
    "storageProfile": {
      "osDisk": {
        "osType": "Windows",
        "name": "osDisk",
        "createOption": "Attach",
        "vhd": {
          "uri": "http://myaccount.blob.core.windows.net/container/directory/blob.vhd"
        }
      }
    },
    "userData": "c2FtcGxlIHVzZXJEYXRh",
    "networkProfile": { "networkInterfaces" : [ { "name" : "nic1" } ] },
  }
}

Gebruikersgegevens toevoegen wanneer u een nieuwe virtuele-machineschaalset maakt

Voeg met behulp van rest API 'UserData' toe aan de sectie 'virtualMachineProfile' met de PUT-aanvraag bij het maken van de virtuele-machineschaalset.

{
  "location": "West US",
  "sku": {
    "name": "Standard_A1",
    "capacity": 1
  },
  "properties": {
    "upgradePolicy": {
      "mode": "Automatic"
    },
    "virtualMachineProfile": {
      "userData": "VXNlckRhdGE=",
      "osProfile": {
        "computerNamePrefix": "TestVM",
        "adminUsername": "TestUserName",
        "windowsConfiguration": {
          "provisionVMAgent": true,
          "timeZone": "Dateline Standard Time"
        }
      },
      "storageProfile": {
        "osDisk": {
          "createOption": "FromImage",
          "caching": "ReadOnly"
        },
        "imageReference": {
          "publisher": "publisher",
          "offer": "offer",
          "sku": "sku",
          "version": "1.2.3"
        }
      },
      "networkProfile": {"networkInterfaceConfigurations":[{"name":"nicconfig1","properties":{"ipConfigurations":[{"name":"ip1","properties":{"subnet":{"id":"vmssSubnet0"}}}]}}]},
      "diagnosticsProfile": {
        "bootDiagnostics": {
          "enabled": true,
          "storageUri": "https://crputest.blob.core.windows.net"
        }
      }
    },
    "provisioningState": 0,
    "overprovision": false,
    "uniqueId": "00000000-0000-0000-0000-000000000000"
  }
}

Gebruikersgegevens ophalen

Toepassingen die binnen de VM worden uitgevoerd, kunnen gebruikersgegevens ophalen van het IMDS-eindpunt. Zie IMDS-voorbeeldcode hier voor meer informatie.

Klanten kunnen bestaande waarde van gebruikersgegevens ophalen via rest API met behulp van $expand=userData-eindpunt (aanvraagbody kan leeg worden gelaten).

Individuele VM's:

GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachines/{VMName}?$expand=userData"

Virtuele-machineschaalset:

GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}?$expand=userData"

Virtuele-machineschaalset-VM:

GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}/virtualmachines/{vmss instance id}?$expand=userData"

Gebruikersgegevens bijwerken

Met REST API kunt u een normale PUT- of PATCH-aanvraag gebruiken om de gebruikersgegevens bij te werken. De gebruikersgegevens worden bijgewerkt zonder de vm te stoppen of opnieuw op te starten.

PUT "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}

PATCH "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}

De VM.Properties in deze aanvragen moet het gewenste UserData-veld bevatten, zoals dit:

"properties": {
        "hardwareProfile": {
          "vmSize": "Standard_D1_v2"
        },
        "storageProfile": {
          "imageReference": {
            "sku": "2016-Datacenter",
            "publisher": "MicrosoftWindowsServer",
            "version": "latest",
            "offer": "WindowsServer"
          },
          "osDisk": {
            "caching": "ReadWrite",
            "managedDisk": {
              "storageAccountType": "StandardSSD_LRS"
            },
            "name": "vmOSdisk",
            "createOption": "FromImage"
          }
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}",
              "properties": {
                "primary": true
              }
            }
          ]
        },
        "osProfile": {
          "adminUsername": "{your-username}",
          "computerName": "{vm-name}",
          "adminPassword": "{your-password}"
        },
        "diagnosticsProfile": {
          "bootDiagnostics": {
            "storageUri": "http://{existing-storage-account-name}.blob.core.windows.net",
            "enabled": true
          }
        },
        "userData": "U29tZSBDdXN0b20gRGF0YQ=="
      } 

Notitie

Als u in dit geval een lege tekenreeks doorgeeft voor 'userData', worden de gebruikersgegevens verwijderd.

Gebruikersgegevens en aangepaste gegevens

Aangepaste gegevens blijven op dezelfde manier werken als nu. U kunt geen aangepaste gegevens ophalen uit IMDS.

Gebruikersgegevens toevoegen aan een bestaande VM

Als u een bestaande VM/VMSS zonder gebruikersgegevens hebt, kunt u nog steeds gebruikersgegevens aan deze VM toevoegen met behulp van de bijwerkopdrachten, zoals beschreven in de sectie 'De gebruikersgegevens bijwerken' . Zorg ervoor dat u een upgrade uitvoert naar de nieuwste versie van de Azure Resource Manger-API.

Volgende stappen

Probeer Azure Instance Metadata Service uit en leer hoe u de metagegevens en gebruikersgegevens van het VM-exemplaar kunt ophalen van het eindpunt.