Megosztás a következőn keresztül:


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 az a "felhasználói adatok"

A felhasználói adatok szkriptek vagy más metaadatok készletei, amelyeket a rendszer a kiépítéskor szúr be egy Azure-beli virtuális gépre. 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-val kérdezhetők le $expand lehetőséggel.

Emellett ha a kiépítéskor nem ad hozzá felhasználói adatokat, 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, mielőtt átadta volna az API-nak. A méret nem haladhatja meg a 64 KB-ot.

Felhasználói adatok létrehozása Azure-beli virtuális géphez/VMSS-hez

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ében adja hozzá a "UserData" kifejezést a "properties" 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. Részletekért tekintse meg az IMDS mintakódját itt.

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érés törzse üresen hagyható).

Ö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, az alábbi módon:

"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=="
      } 

Megjegyzés

Ha ebben az esetben egy üres sztringet ad meg a "userData" számára, a felhasználói adatok törlődnek.

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 frissítési parancsok használatával, a "Felhasználói adatok frissítése" szakaszban leírtak szerint. Győződjön meg arról, hogy az Azure Resource Manger API legújabb verziójára frissít.

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.