Användardata för virtuell Azure-dator
Med användardata kan du skicka egna skript eller metadata till den virtuella datorn.
Vad är "användardata"
Användardata är en uppsättning skript eller andra metadata som kommer att infogas på en virtuell Azure-dator vid etableringen. Alla program på den virtuella datorn kan komma åt användardata från Azure Instance Metadata Service (IMDS) efter etableringen.
Användardata är en ny version av anpassade data och ger ytterligare fördelar:
Användardata kan hämtas från Azure Instance Metadata Service (IMDS) efter etableringen.
Användardata är beständiga. Den kommer att vara tillgänglig under den virtuella datorns livslängd.
Användardata kan uppdateras utanför den virtuella datorn utan att stoppa eller starta om den virtuella datorn.
Du kan fråga användardata via GET VM/VMSS API med $expand alternativ.
Om användardata inte läggs till vid etableringen kan du dessutom fortfarande lägga till dem efter etableringen.
Säkerhetsvarning
Varning
Användardata krypteras inte och alla processer på den virtuella datorn kan köra frågor mot dessa data. Du bör inte lagra konfidentiell information i användardata.
Se till att du får det senaste Azure Resource Manager API:et för att använda de nya användardatafunktionerna. Innehållet ska vara base64-kodat innan det skickas till API:et. Storleken får inte överskrida 64 kB.
Skapa användardata för virtuella Azure-datorer/VMSS
Lägga till användardata när du skapar en ny virtuell dator
Använd den här Azure Resource Manager för att skapa en ny virtuell dator med användardata. Om du använder rest-API:et för enskilda virtuella datorer lägger du till UserData i avsnittet "properties" med PUT-begäran för att skapa den virtuella datorn.
{
"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" } ] },
}
}
Lägga till användardata när du skapar en ny VM-skalningsuppsättning
Med hjälp av REST-API:et lägger du till UserData i avsnittet "virtualMachineProfile" med PUT-begäran när du skapar VM-skalningsuppsättningen.
{
"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"
}
}
Hämta användardata
Program som körs på den virtuella datorn kan hämta användardata från IMDS-slutpunkten. Mer information finns i EXEMPELkod för IMDS här.
Kunder kan hämta det befintliga värdet för användardata via REST API med hjälp $expand= userData-slutpunkten (begärandetexten kan lämnas tom).
Enskilda virtuella datorer:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachines/{VMName}?$expand=userData"
VM-skalningsuppsättning:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}?$expand=userData"
Vm-skalningsuppsättning för virtuell dator:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}/virtualmachines/{vmss instance id}?$expand=userData"
Uppdatera användardata
Med REST API kan du använda en normal PUT- eller PATCH-begäran för att uppdatera användardata. Användardata uppdateras utan att du behöver stoppa eller starta om den virtuella datorn.
PUT "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}
PATCH "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}
VM.Properties i dessa begäranden ska innehålla önskat UserData-fält, så här:
"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=="
}
Anteckning
Om du skickar en tom sträng för "userData" i det här fallet tas användardata bort.
Användardata och anpassade data
Anpassade data fortsätter att fungera på samma sätt som i dag. Observera att du inte kan hämta anpassade data från IMDS.
Lägga till användardata till en befintlig virtuell dator
Om du har en befintlig virtuell dator/VMSS utan användardata kan du fortfarande lägga till användardata till den här virtuella datorn med hjälp av uppdateringskommandona, enligt beskrivningen i avsnittet Uppdatera användardata . Se till att du uppgraderar till den senaste versionen av Azure Resource Manger API.
Nästa steg
Prova Azure Instance Metadata Service och lär dig hur du hämtar vm-instansmetadata och användardata från dess slutpunkt.