Delen via


Gebruikersgegevens voor virtuele Azure-machine

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

Wat is 'gebruikersgegevens'

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

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

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

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

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

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

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

Beveiligingswaarschuwing

Waarschuwing

Gebruikersgegevens worden niet versleuteld en elk proces op de VIRTUELE machine kan deze gegevens opvragen. U mag geen vertrouwelijke informatie opslaan in gebruikersgegevens.

Zorg ervoor dat u de nieuwste Azure Resource Manager-API krijgt om de nieuwe functies voor gebruikersgegevens te gebruiken. De inhoud moet base64 worden gecodeerd 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 VIRTUELE machine

Gebruik deze Azure Resource Manager-sjabloon om een nieuwe VIRTUELE machine te maken met gebruikersgegevens. Als u rest API gebruikt, voegt u 'UserData' toe aan de sectie 'properties' met de PUT-aanvraag om de VIRTUELE machine 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

Met behulp van rest API voegt u 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 uit het IMDS-eindpunt. Zie hier de voorbeeldcode van IMDS voor meer informatie.

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

Enkele 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 virtuele machine 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 hieronder:

"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 voor userData doorgeeft, worden de gebruikersgegevens verwijderd.

Gebruikersgegevens en aangepaste gegevens

Aangepaste gegevens blijven op dezelfde manier werken als vandaag. 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 toevoegen aan deze VIRTUELE machine 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 De Azure Instance Metadata Service uit, leer hoe u de metagegevens van het VM-exemplaar en de gebruikersgegevens kunt ophalen uit het eindpunt.