Felhasználói adatok azure-beli virtuális géphez
A felhasználói adatok segítségével saját szkripteket vagy metaadatokat adhat át a virtuális gépnek.
Mi a "felhasználói adatok"
A felhasználói adatok szkriptek vagy más metaadatok készletei, amelyeket a kiépítéskor egy Azure-beli virtuális gépbe szúrnak be. A virtuális gép bármely alkalmazása hozzáférhet a felhasználói adatokhoz az Azure Instance Metadata Service (IMDS) szolgáltatásból a kiépítés után.
A felhasználói adatok az egyéni adatok új verziója, és további előnyöket kínálnak:
A felhasználói adatok a kiépítés után lekérhetők az Azure Instance Metadata Service(IMDS) szolgáltatásból.
A felhasználói adatok állandóak. A virtuális gép élettartama alatt lesz elérhető.
A felhasználói adatok a virtuális gépen kívülről is frissíthetők a virtuális gép leállítása vagy újraindítása nélkül.
A felhasználói adatok a GET VM/VMSS API-n keresztül kérdezhetők le $expand lehetőséggel.
Ezenkívül ha a felhasználói adatok nem lesznek hozzáadva a kiépítéskor, a kiépítés után is hozzáadhatja azokat.
Biztonsági figyelmeztetés
Figyelmeztetés
A felhasználói adatok nem lesznek titkosítva, és a virtuális gép bármely folyamata lekérdezheti ezeket az adatokat. A bizalmas adatokat nem szabad a felhasználói adatokban tárolni.
Győződjön meg arról, hogy a legújabb Azure Resource Manager API-t használja az új felhasználóiadat-funkciók használatához. A tartalomnak base64 kódolásúnak kell lennie az API-nak való továbbítás előtt. A méret nem haladhatja meg a 64 KB-ot.
Felhasználói adatok létrehozása Azure-beli virtuális gépekhez/virtuális gépekhez
Felhasználói adatok hozzáadása új virtuális gép létrehozásakor
Ezzel az Azure Resource Manager-sablonnal új virtuális gépet hozhat létre felhasználói adatokkal. Ha rest API-t használ, egyetlen virtuális gép esetén adja hozzá a "UserData" kifejezést a "tulajdonságok" szakaszhoz a virtuális gép létrehozásához szükséges PUT kéréssel.
{
"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" } ] },
}
}
Felhasználói adatok hozzáadása új virtuálisgép-méretezési csoport létrehozásakor
A rest API használatával adja hozzá a "UserData" értéket a "virtualMachineProfile" szakaszhoz a PUT kéréssel a virtuálisgép-méretezési csoport létrehozásakor.
{
"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"
}
}
Felhasználói adatok beolvasása
A virtuális gépen futó alkalmazások lekérhetik a felhasználói adatokat az IMDS-végpontról. További részletekért lásd itt az IMDS-mintakódot.
Az ügyfelek a rest API-n keresztül lekérhetik a felhasználói adatok meglévő értékét a $expand=userData végpont használatával (a kérelem törzse üres maradhat).
Önálló virtuális gépek:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachines/{VMName}?$expand=userData"
Virtuálisgép-méretezési csoport:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}?$expand=userData"
Virtuálisgép-méretezési csoport virtuális gépe:
GET "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}/virtualmachines/{vmss instance id}?$expand=userData"
Felhasználói adatok frissítése
A REST API-val normál PUT vagy PATCH kéréssel frissítheti a felhasználói adatokat. A felhasználói adatok a virtuális gép leállítása vagy újraindítása nélkül frissülnek.
PUT "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}
PATCH "/subscriptions/{guid}/resourceGroups/{RGName}/providers/Microsoft.Compute/ virtualMachines/{VMName}
A kérések VM.Properties tulajdonságának tartalmaznia kell a kívánt UserData mezőt, például:
"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=="
}
Feljegyzés
Ha ebben az esetben egy üres sztringet ad meg a "userData" kifejezéshez, a rendszer törli a felhasználói adatokat.
Felhasználói adatok és egyéni adatok
Az egyéni adatok továbbra is ugyanúgy működnek, mint ma. Vegye figyelembe, hogy nem tud egyéni adatokat lekérni az IMDS-ből.
Felhasználói adatok hozzáadása meglévő virtuális géphez
Ha felhasználói adatok nélkül rendelkezik meglévő virtuális géppel/VMSS-sel, akkor is hozzáadhat felhasználói adatokat ehhez a virtuális géphez a "Felhasználói adatok frissítése" című szakaszban ismertetett frissítési parancsok használatával. Frissítsen az Azure Resource Manger API legújabb verziójára.
Következő lépések
Próbálja ki az Azure Instance Metadata Service-t, és ismerje meg, hogyan szerezheti be a virtuálisgép-példány metaadatait és felhasználói adatait a végpontjáról.