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 in een virtuele Azure-machine. Elke toepassing op de virtuele machine heeft na het inrichten toegang tot de gebruikersgegevens van de Azure Instance Metadata Service (IMDS).

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

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

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

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

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

Als er tijdens het inrichten geen gebruikersgegevens worden toegevoegd, kunt u deze ook na het inrichten toevoegen.

Beveiligingswaarschuwing

Waarschuwing

Gebruikersgegevens worden niet versleuteld en alle processen op de VM kunnen deze gegevens opvragen. U mag geen vertrouwelijke informatie opslaan in gebruikersgegevens.

Zorg ervoor dat u de nieuwste api Azure Resource Manager om de nieuwe functies voor gebruikersgegevens te gebruiken. De inhoud moet base64 zijn 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 VM

Gebruik deze Azure Resource Manager om een nieuwe VM met gebruikersgegevens te maken. Als u rest API gebruikt, voegt u voor enkele 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 de 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 worden uitgevoerd in de VM kunnen gebruikersgegevens ophalen van het IMDS-eindpunt. Zie hier IMDS-voorbeeldcode voor meer informatie.

Klanten kunnen bestaande waarde van gebruikersgegevens ophalen via rest API met $ behulp van expand=userData-eindpunt (aanvraag body 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 VM te hoeven 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 moeten het gewenste veld UserData bevatten, zoals:

"properties": {
        "hardwareProfile": {
          "vmSize": "Standard_D1_v2"
        },
        "storageProfile": {
          "imageReference": {
            "sku": "2016-Datacenter",
            "publisher": "MicrosoftWindowsServer",
            "version": "latest",
            "offer": "WindowsServer"
          },
          "osDisk": {
            "caching": "ReadWrite",
            "managedDisk": {
              "storageAccountType": "Standard_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 door geeft, 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 VM met behulp van de bij te werken opdrachten, zoals beschreven in de sectie 'De gebruikersgegevens bijwerken'. Zorg ervoor dat u een upgrade naar de nieuwste versie van de Azure Resource Manger-API hebt uitgevoerd.

Volgende stappen

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