Azure Instance Metadata Service (Windows)Azure Instance Metadata Service (Windows)

Azure Instance Metadata Service (IMDS) innehåller information om instanser av virtuella datorer som körs för närvarande.The Azure Instance Metadata Service (IMDS) provides information about currently running virtual machine instances. Du kan använda den för att hantera och konfigurera dina virtuella datorer.You can use it to manage and configure your virtual machines. Den här informationen omfattar SKU, lagring, nätverkskonfigurationer och kommande underhållshändelser.This information includes the SKU, storage, network configurations, and upcoming maintenance events. En fullständig lista över tillgängliga data finns i Sammanfattning av slutpunktskategorier.For a complete list of the data available, see the Endpoint Categories Summary.

IMDS är tillgängligt för att köra instanser av virtuella datorer (VM) och VM-skalningsuppsättningsinstanser.IMDS is available for running instances of virtual machines (VMs) and virtual machine scale set instances. Alla slutpunkter stöder virtuella datorer som skapats och hanteras med hjälp av Azure Resource Manager.All endpoints support VMs created and managed by using Azure Resource Manager. Endast kategorin Attested (Attesterad) och Network (Nätverk) i kategorin Instance (Instans) stöder virtuella datorer som skapats med hjälp av den klassiska distributionsmodellen.Only the Attested category and Network portion of the Instance category support VMs created by using the classic deployment model. Den attesterade slutpunkten gör detta endast i begränsad utsträckning.The Attested endpoint does so only to a limited extent.

IMDS är REST API som är tillgänglig på en välkänd, icke-dirigerbar IP-adress ( 169.254.169.254 ).IMDS is a REST API that's available at a well-known, non-routable IP address (169.254.169.254). Du kan bara komma åt den från den virtuella datorn.You can only access it from within the VM. Kommunikationen mellan den virtuella datorn och IMDS lämnar aldrig värden.Communication between the VM and IMDS never leaves the host. Se till att HTTP-klienter kringgår webbproxies i den virtuella datorn när de frågar IMDS och 169.254.169.254 behandlar samma som 168.63.129.16 .Have your HTTP clients bypass web proxies within the VM when querying IMDS, and treat 169.254.169.254 the same as 168.63.129.16.

AnvändningUsage

Få åtkomst till Azure Instance Metadata ServiceAccess Azure Instance Metadata Service

Om du vill komma åt IMDS skapar du en virtuell Azure Resource Manager från Azure Portaloch använder följande exempel.To access IMDS, create a VM from Azure Resource Manager or the Azure portal, and use the following samples. Fler exempel finns i Azure Instance Metadata Samples.For more examples, see Azure Instance Metadata Samples.

Här är exempelkod för att hämta alla metadata för en instans.Here's sample code to retrieve all metadata for an instance. En översikt över alla tillgängliga funktioner finns i Slutpunktskategorier för att få åtkomst till en specifik datakälla.To access a specific data source, see Endpoint Categories for an overview of all available features.

FörfråganRequest

Viktigt

I det här exemplet kringgås proxys.This example bypasses proxies. Du måste kringgå proxy när du frågar IMDS.You must bypass proxies when querying IMDS. Mer information finns i Proxys.See Proxies for additional information.

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance?api-version=2020-09-01" | ConvertTo-Json -Depth 64

ResponseResponse

Anteckning

Svaret är en JSON-sträng.The response is a JSON string. Följande exempelsvar är ganska utskrivet för läsbarhet.The following example response is pretty-printed for readability.

{
    "compute": {
        "azEnvironment": "AZUREPUBLICCLOUD",
        "isHostCompatibilityLayerVm": "true",
        "licenseType":  "Windows_Client",
        "location": "westus",
        "name": "examplevmname",
        "offer": "WindowsServer",
        "osProfile": {
            "adminUsername": "admin",
            "computerName": "examplevmname",
            "disablePasswordAuthentication": "true"
        },
        "osType": "Windows",
        "placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
        "plan": {
            "name": "planName",
            "product": "planProduct",
            "publisher": "planPublisher"
        },
        "platformFaultDomain": "36",
        "platformUpdateDomain": "42",
        "publicKeys": [{
                "keyData": "ssh-rsa 0",
                "path": "/home/user/.ssh/authorized_keys0"
            },
            {
                "keyData": "ssh-rsa 1",
                "path": "/home/user/.ssh/authorized_keys1"
            }
        ],
        "publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
        "resourceGroupName": "macikgo-test-may-23",
        "resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
        "securityProfile": {
            "secureBootEnabled": "true",
            "virtualTpmEnabled": "false"
        },
        "sku": "2019-Datacenter",
        "storageProfile": {
            "dataDisks": [{
                "caching": "None",
                "createOption": "Empty",
                "diskSizeGB": "1024",
                "image": {
                    "uri": ""
                },
                "lun": "0",
                "managedDisk": {
                    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
                    "storageAccountType": "Standard_LRS"
                },
                "name": "exampledatadiskname",
                "vhd": {
                    "uri": ""
                },
                "writeAcceleratorEnabled": "false"
            }],
            "imageReference": {
                "id": "",
                "offer": "WindowsServer",
                "publisher": "MicrosoftWindowsServer",
                "sku": "2019-Datacenter",
                "version": "latest"
            },
            "osDisk": {
                "caching": "ReadWrite",
                "createOption": "FromImage",
                "diskSizeGB": "30",
                "diffDiskSettings": {
                    "option": "Local"
                },
                "encryptionSettings": {
                    "enabled": "false"
                },
                "image": {
                    "uri": ""
                },
                "managedDisk": {
                    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
                    "storageAccountType": "Standard_LRS"
                },
                "name": "exampleosdiskname",
                "osType": "Windows",
                "vhd": {
                    "uri": ""
                },
                "writeAcceleratorEnabled": "false"
            }
        },
        "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "tags": "baz:bash;foo:bar",
        "userData": "Zm9vYmFy",
        "version": "15.05.22",
        "vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
        "vmScaleSetName": "crpteste9vflji9",
        "vmSize": "Standard_A3",
        "zone": ""
    },
    "network": {
        "interface": [{
            "ipv4": {
               "ipAddress": [{
                    "privateIpAddress": "10.144.133.132",
                    "publicIpAddress": ""
                }],
                "subnet": [{
                    "address": "10.144.133.128",
                    "prefix": "26"
                }]
            },
            "ipv6": {
                "ipAddress": [
                 ]
            },
            "macAddress": "0011AAFFBB22"
        }]
    }
}

Säkerhet och autentiseringSecurity and authentication

Den Instance Metadata Service är endast tillgänglig från en instans av en virtuell dator som körs på en icke-dirigerbar IP-adress.The Instance Metadata Service is only accessible from within a running virtual machine instance on a non-routable IP address. Virtuella datorer är begränsade till att interagera med metadata/funktioner som hör till sig själva.VMs are limited to interacting with metadata/functionality that pertains to themselves. API:et är endast HTTP och lämnar aldrig värden.The API is HTTP only and never leaves the host.

För att säkerställa att begäranden är direkt avsedda för IMDS och förhindra oavsiktlig eller oönskad omdirigering av begäranden, begäranden:In order to ensure that requests are directly intended for IMDS and prevent unintended or unwanted redirection of requests, requests:

  • Måste innehålla rubriken Metadata: trueMust contain the header Metadata: true
  • Får inte innehålla en X-Forwarded-For rubrikMust not contain an X-Forwarded-For header

Alla förfrågningar som inte uppfyller båda dessa krav avvisas av tjänsten.Any request that does not meet both of these requirements will be rejected by the service.

Viktigt

IMDS är inte en kanal för känsliga data.IMDS is not a channel for sensitive data. API:et är oauthenticerat och öppet för alla processer på den virtuella datorn.The API is unauthenticated and open to all processes on the VM. Information som exponeras via den här tjänsten bör betraktas som delad information för alla program som körs på den virtuella datorn.Information exposed through this service should be considered as shared information to all applications running inside the VM.

ProxyservrarProxies

IMDS är inte avsett att användas bakom en proxy och detta stöds inte.IMDS is not intended to be used behind a proxy and doing so is unsupported. De flesta HTTP-klienter ger dig ett alternativ för att inaktivera proxy för dina begäranden, och den här funktionen måste användas vid kommunikation med IMDS.Most HTTP clients provide an option for you to disable proxies on your requests, and this functionality must be utilized when communicating with IMDS. Mer information finns i klientens dokumentation.Consult your client's documentation for details.

Viktigt

Även om du inte känner till någon proxykonfiguration i din miljö, måste du fortfarande åsidosätta alla standardinställningar för klientproxy.Even if you don't know of any proxy configuration in your environment, you still must override any default client proxy settings. Proxykonfigurationer kan identifieras automatiskt och om du inte kringgår sådana konfigurationer exponeras du för avbrottsrisker om datorns konfiguration ändras i framtiden.Proxy configurations can be automatically discovered, and failing to bypass such configurations exposes you to outage risks should the machine's configuration be changed in the future.

FrekvensbegränsningRate limiting

I allmänhet är begäranden till IMDS begränsade till 5 begäranden per sekund.In general, requests to IMDS are limited to 5 requests per second. Begäranden som överskrider det här tröskelvärdet avvisas med 429 svar.Requests exceeding this threshold will be rejected with 429 responses. Begäranden till kategorin Hanterad identitet är begränsade till 20 begäranden per sekund och 5 samtidiga begäranden.Requests to the Managed Identity category are limited to 20 requests per second and 5 concurrent requests.

HTTP-verbHTTP verbs

Följande HTTP-verb stöds för närvarande:The following HTTP verbs are currently supported:

VerbVerb DescriptionDescription
GET Hämta den begärda resursenRetrieve the requested resource

ParametrarParameters

Slutpunkter kan ha stöd för obligatoriska och/eller valfria parametrar.Endpoints may support required and/or optional parameters. Mer information finns i Schema och dokumentationen för den aktuella slutpunkten.See Schema and the documentation for the specific endpoint in question for details.

FrågeparametrarQuery parameters

IMDS-slutpunkter har stöd för HTTP-frågesträngsparametrar.IMDS endpoints support HTTP query string parameters. Exempel:For example:

http://169.254.169.254/metadata/instance/compute?api-version=2019-06-04&format=json

Anger parametrarna:Specifies the parameters:

NameName VärdeValue
api-version 2019-06-04
format json

Begäranden med dubbla frågeparameternamn avvisas.Requests with duplicate query parameter names will be rejected.

VägparametrarRoute parameters

För vissa slutpunkter som returnerar större json-blobar har vi stöd för att lägga till vägparametrar till begärandeslutpunkten för att filtrera ned till en delmängd av svaret:For some endpoints that return larger json blobs, we support appending route parameters to the request endpoint to filter down to a subset of the response:

http://169.254.169.254/metadata/<endpoint>/[<filter parameter>/...]?<query parameters>

Parametrarna motsvarar de index/nycklar som skulle användas för att gå igenom json-objektet om du interagerar med en parsad representation.The parameters correspond to the indexes/keys that would be used to walk down the json object were you interacting with a parsed representation.

Returnerar till /metatadata/instance exempel json-objektet:For example, /metatadata/instance returns the json object:

{
    "compute": { ... },
    "network": {
        "interface": [
            {
                "ipv4": {
                   "ipAddress": [{
                        "privateIpAddress": "10.144.133.132",
                        "publicIpAddress": ""
                    }],
                    "subnet": [{
                        "address": "10.144.133.128",
                        "prefix": "26"
                    }]
                },
                "ipv6": {
                    "ipAddress": [
                     ]
                },
                "macAddress": "0011AAFFBB22"
            },
            ...
        ]
    }
}

Om vi vill filtrera svaret till bara beräkningsegenskapen skickar vi begäran:If we want to filter the response down to just the compute property, we would send the request:

http://169.254.169.254/metadata/instance/compute?api-version=<version>

Och om vi vill filtrera på en kapslad egenskap eller ett specifikt matriselement fortsätter vi att lägga till nycklar:Similarly, if we want to filter to a nested property or specific array element we keep appending keys:

http://169.254.169.254/metadata/instance/network/interface/0?api-version=<version>

filtrerar du på det första elementet från Network.interface egenskapen och returnerar:would filter to the first element from the Network.interface property and return:

{
    "ipv4": {
       "ipAddress": [{
            "privateIpAddress": "10.144.133.132",
            "publicIpAddress": ""
        }],
        "subnet": [{
            "address": "10.144.133.128",
            "prefix": "26"
        }]
    },
    "ipv6": {
        "ipAddress": [
         ]
    },
    "macAddress": "0011AAFFBB22"
}

Anteckning

När du filtrerar till en format=json lövnod fungerar inte det.When filtering to a leaf node, format=json doesn't work. För dessa frågor format=text måste anges uttryckligen eftersom standardformatet är json.For these queries format=text needs to be explicitly specified since the default format is json.

SchemaSchema

DataformatData format

Som standard returnerar IMDS data i JSON-format ( Content-Type: application/json ).By default, IMDS returns data in JSON format (Content-Type: application/json). Slutpunkter som stöder svarsfiltrering (se Vägparametrar)har dock även stöd för formatet text .However, endpoints that support response filtering (see Route Parameters) also support the format text.

Om du vill komma åt ett icke-standardsvarsformat anger du det begärda formatet som en frågesträngsparameter i begäran.To access a non-default response format, specify the requested format as a query string parameter in the request. Exempel:For example:

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance?api-version=2017-08-01&format=text"

I json-svar kommer alla primitiver att vara av typen , och saknade eller inapplicerbara värden ingår alltid men anges string till en tom sträng.In json responses, all primitives will be of type string, and missing or inapplicable values are always included but will be set to an empty string.

VersionshanteringVersioning

IMDS är versionshantering och det är obligatoriskt att ange API-versionen i HTTP-begäran.IMDS is versioned and specifying the API version in the HTTP request is mandatory. Det enda undantaget till det här kravet är versionsslutpunkten, som kan användas för att dynamiskt hämta tillgängliga API-versioner.The only exception to this requirement is the versions endpoint, which can be used to dynamically retrieve the available API versions.

När nyare versioner läggs till kan äldre versioner fortfarande användas för kompatibilitet om skripten har beroenden av specifika dataformat.As newer versions are added, older versions can still be accessed for compatibility if your scripts have dependencies on specific data formats.

När du inte anger en version visas ett fel med en lista över de senaste versionerna som stöds:When you don't specify a version, you get an error with a list of the newest supported versions:

{
    "error": "Bad request. api-version was not specified in the request. For more information refer to aka.ms/azureimds",
    "newest-versions": [
        "2020-10-01",
        "2020-09-01",
        "2020-07-15"
    ]
}

API-versioner som stödsSupported API versions

  • 2017-03-012017-03-01
  • 2017-04-022017-04-02
  • 2017-08-012017-08-01
  • 2017-10-012017-10-01
  • 2017-12-012017-12-01
  • 2018-02-012018-02-01
  • 2018-04-022018-04-02
  • 2018-10-012018-10-01
  • 2019-02-012019-02-01
  • 2019-03-112019-03-11
  • 2019-04-302019-04-30
  • 2019-06-012019-06-01
  • 2019-06-042019-06-04
  • 2019-08-012019-08-01
  • 2019-08-152019-08-15
  • 2019-11-012019-11-01
  • 2020-06-012020-06-01
  • 2020-07-152020-07-15
  • 2020-09-012020-09-01
  • 2020-10-012020-10-01
  • 2020-12-012020-12-01
  • 2021-01-012021-01-01

SwaggerSwagger

En fullständig Swagger-definition för IMDS finns på: https://github.com/Azure/azure-rest-api-specs/blob/master/specification/imds/data-plane/readme.mdA full Swagger definition for IMDS is available at: https://github.com/Azure/azure-rest-api-specs/blob/master/specification/imds/data-plane/readme.md

Regional tillgänglighetRegional availability

Tjänsten är allmänt tillgänglig i alla Azure-moln.The service is generally available in all Azure Clouds.

RotslutpunktRoot endpoint

Rotslutpunkten är http://169.254.169.254/metadata .The root endpoint is http://169.254.169.254/metadata.

SlutpunktskategorierEndpoint categories

IMDS-API:et innehåller flera slutpunktskategorier som representerar olika datakällor, som var och en innehåller en eller flera slutpunkter.The IMDS API contains multiple endpoint categories representing different data sources, each of which contains one or more endpoints. Mer information finns i varje kategori.See each category for details.

KategorirotCategory root DescriptionDescription Version introduceradVersion introduced
/metadata/attested Se Attesterade dataSee Attested Data 2018-10-012018-10-01
/metadata/identity Se Hanterad identitet via IMDSSee Managed Identity via IMDS 2018-02-012018-02-01
/metadata/instance Se InstansmetadataSee Instance Metadata 2017-04-022017-04-02
/metadata/loadbalancer Se Hämta Load Balancer metadata via IMDSSee Retrieve Load Balancer metadata via IMDS 2020-10-012020-10-01
/metadata/scheduledevents Se Schemalagda händelser via IMDSSee Scheduled Events via IMDS 2017-08-012017-08-01
/metadata/versions Se versionerSee Versions Ej tillämpligtN/A

VersionerVersions

Anteckning

Den här funktionen släpptes tillsammans med version 2020-10-01, som för närvarande distribueras och kanske inte är tillgänglig i alla regioner än.This feature was released alongside version 2020-10-01, which is currently being rolled out and may not yet be available in every region.

Lista API-versionerList API versions

Returnerar uppsättningen API-versioner som stöds.Returns the set of supported API versions.

GET /metadata/versions

ParametrarParameters

Ingen (den här slutpunkten är icke-versionerad).None (this endpoint is unversioned).

SvarsåtgärderResponse

{
  "apiVersions": [
    "2017-03-01",
    "2017-04-02",
    ...
  ]
}

InstansmetadataInstance metadata

Hämta VM-metadataGet VM metadata

Exponerar viktiga metadata för den virtuella datorinstansen, inklusive beräkning, nätverk och lagring.Exposes the important metadata for the VM instance, including compute, network, and storage.

GET /metadata/instance

ParametrarParameters

NameName Obligatorisk/valfriRequired/Optional BeskrivningDescription
api-version KrävsRequired Den version som används för att använda begäran.The version used to service the request.
format Valfritt*Optional* Formatet ( json eller ) för text svaret.The format (json or text) of the response. *Obs! Kan krävas när du använder begärandeparametrar*Note: May be required when using request parameters

Den här slutpunkten stöder svarsfiltrering via vägparametrar .This endpoint supports response filtering via route parameters.

SvarsåtgärderResponse

{
    "compute": {
        "azEnvironment": "AZUREPUBLICCLOUD",
        "isHostCompatibilityLayerVm": "true",
        "licenseType":  "Windows_Client",
        "location": "westus",
        "name": "examplevmname",
        "offer": "WindowsServer",
        "osProfile": {
            "adminUsername": "admin",
            "computerName": "examplevmname",
            "disablePasswordAuthentication": "true"
        },
        "osType": "Windows",
        "placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
        "plan": {
            "name": "planName",
            "product": "planProduct",
            "publisher": "planPublisher"
        },
        "platformFaultDomain": "36",
        "platformUpdateDomain": "42",
        "publicKeys": [{
                "keyData": "ssh-rsa 0",
                "path": "/home/user/.ssh/authorized_keys0"
            },
            {
                "keyData": "ssh-rsa 1",
                "path": "/home/user/.ssh/authorized_keys1"
            }
        ],
        "publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
        "resourceGroupName": "macikgo-test-may-23",
        "resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
        "securityProfile": {
            "secureBootEnabled": "true",
            "virtualTpmEnabled": "false"
        },
        "sku": "2019-Datacenter",
        "storageProfile": {
            "dataDisks": [{
                "caching": "None",
                "createOption": "Empty",
                "diskSizeGB": "1024",
                "image": {
                    "uri": ""
                },
                "lun": "0",
                "managedDisk": {
                    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
                    "storageAccountType": "Standard_LRS"
                },
                "name": "exampledatadiskname",
                "vhd": {
                    "uri": ""
                },
                "writeAcceleratorEnabled": "false"
            }],
            "imageReference": {
                "id": "",
                "offer": "WindowsServer",
                "publisher": "MicrosoftWindowsServer",
                "sku": "2019-Datacenter",
                "version": "latest"
            },
            "osDisk": {
                "caching": "ReadWrite",
                "createOption": "FromImage",
                "diskSizeGB": "30",
                "diffDiskSettings": {
                    "option": "Local"
                },
                "encryptionSettings": {
                    "enabled": "false"
                },
                "image": {
                    "uri": ""
                },
                "managedDisk": {
                    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
                    "storageAccountType": "Standard_LRS"
                },
                "name": "exampleosdiskname",
                "osType": "Windows",
                "vhd": {
                    "uri": ""
                },
                "writeAcceleratorEnabled": "false"
            }
        },
        "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "tags": "baz:bash;foo:bar",
        "userData": "Zm9vYmFy",
        "version": "15.05.22",
        "vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
        "vmScaleSetName": "crpteste9vflji9",
        "vmSize": "Standard_A3",
        "zone": ""
    },
    "network": {
        "interface": [{
            "ipv4": {
               "ipAddress": [{
                    "privateIpAddress": "10.144.133.132",
                    "publicIpAddress": ""
                }],
                "subnet": [{
                    "address": "10.144.133.128",
                    "prefix": "26"
                }]
            },
            "ipv6": {
                "ipAddress": [
                 ]
            },
            "macAddress": "0011AAFFBB22"
        }]
    }
}

Schemauppdelning:Schema breakdown:

BeräkningCompute

DataData DescriptionDescription Version introduceradVersion introduced
azEnvironment Azure-miljö där den virtuella datorn körs iAzure Environment where the VM is running in 2018-10-012018-10-01
customData Den här funktionen är inaktuell och inaktiverad i IMDS.This feature is deprecated and disabled in IMDS. Den har ersatts av userDataIt has been superseded by userData 2019-02-012019-02-01
evictionPolicy Anger hur en virtuell spot-dator ska avlägsnas.Sets how a Spot VM will be evicted. 2020-12-012020-12-01
isHostCompatibilityLayerVm Anger om den virtuella datorn körs på värdkompatibilitetsskiktetIdentifies if the VM runs on the Host Compatibility Layer 2020-06-012020-06-01
licenseType Typ av licens för Azure Hybrid-förmån.Type of license for Azure Hybrid Benefit. Detta gäller endast för AHB-aktiverade virtuella datorerThis is only present for AHB-enabled VMs 2020-09-012020-09-01
location Azure-region som den virtuella datorn körs iAzure Region the VM is running in 2017-04-022017-04-02
name Namnet på den virtuella datornName of the VM 2017-04-022017-04-02
offer Erbjudandeinformation för VM-avbildningen och finns endast för avbildningar som distribuerats från Azure-avbildningsgallerietOffer information for the VM image and is only present for images deployed from Azure image gallery 2017-04-022017-04-02
osProfile.adminUsername Anger namnet på administratörskontotSpecifies the name of the admin account 2020-07-152020-07-15
osProfile.computerName Anger namnet på datornSpecifies the name of the computer 2020-07-152020-07-15
osProfile.disablePasswordAuthentication Anger om lösenordsautentisering är inaktiverat.Specifies if password authentication is disabled. Detta gäller endast för virtuella Linux-datorerThis is only present for Linux VMs 2020-10-012020-10-01
osType Linux eller WindowsLinux or Windows 2017-04-022017-04-02
placementGroupId Placeringsgrupp för VM-skalningsuppsättningenPlacement Group of your virtual machine scale set 2017-08-012017-08-01
plan Planera med namn, produkt och utgivare för en virtuell dator om det är en Azure Marketplace avbildningPlan containing name, product, and publisher for a VM if it is an Azure Marketplace Image 2018-04-022018-04-02
platformUpdateDomain Uppdateringsdomän som den virtuella datorn körs iUpdate domain the VM is running in 2017-04-022017-04-02
platformFaultDomain Feldomän som den virtuella datorn körs iFault domain the VM is running in 2017-04-022017-04-02
priority Prioritet för den virtuella datorn.Priority of the VM. Mer information finns i Virtuella spot-datorerRefer to Spot VMs for more information 2020-12-012020-12-01
provider Provider för den virtuella datornProvider of the VM 2018-10-012018-10-01
publicKeys Samling offentliga nycklar tilldelade till den virtuella datorn och sökvägarCollection of Public Keys assigned to the VM and paths 2018-04-022018-04-02
publisher Utgivare av VM-avbildningenPublisher of the VM image 2017-04-022017-04-02
resourceGroupName Resursgrupp för den virtuella datornResource group for your Virtual Machine 2017-08-012017-08-01
resourceId Resursens fullständigt kvalificerade IDThe fully qualified ID of the resource 2019-03-112019-03-11
sku Specifik SKU för VM-avbildningenSpecific SKU for the VM image 2017-04-022017-04-02
securityProfile.secureBootEnabled Anger om säker UEFI-start är aktiverat på den virtuella datornIdentifies if UEFI secure boot is enabled on the VM 2020-06-012020-06-01
securityProfile.virtualTpmEnabled Anger om den virtuella Trusted Platform Module (TPM) är aktiverad på den virtuella datornIdentifies if the virtual Trusted Platform Module (TPM) is enabled on the VM 2020-06-012020-06-01
storageProfile Se Lagringsprofil nedanSee Storage Profile below 2019-06-012019-06-01
subscriptionId Azure-prenumeration för den virtuella datornAzure subscription for the Virtual Machine 2017-08-012017-08-01
tags Taggar för din virtuella datorTags for your Virtual Machine 2017-08-012017-08-01
tagsList Taggar formaterade som en JSON-matris för enklare programmatisk parsningTags formatted as a JSON array for easier programmatic parsing 2019-06-042019-06-04
userData Den datauppsättning som angavs när den virtuella datorn skapades för användning under eller efter etableringen (Base64-kodad)The set of data specified when the VM was created for use during or after provisioning (Base64 encoded) 2021-01-012021-01-01
version Version av VM-avbildningenVersion of the VM image 2017-04-022017-04-02
vmId Unik identifierare för den virtuella datornUnique identifier for the VM 2017-04-022017-04-02
vmScaleSetName VM-skalningsuppsättningEns namn på VM-skalningsuppsättningenVirtual machine scale set Name of your virtual machine scale set 2017-12-012017-12-01
vmSize VM-storlekVM size 2017-04-022017-04-02
zone Tillgänglighetszon för den virtuella datornAvailability Zone of your virtual machine 2017-12-012017-12-01

LagringsprofilStorage profile

Lagringsprofilen för en virtuell dator är indelad i tre kategorier: avbildningsreferens, OS-disk och datadiskar.The storage profile of a VM is divided into three categories: image reference, OS disk, and data disks.

Avbildningsreferensobjektet innehåller följande information om OS-avbildningen:The image reference object contains the following information about the OS image:

DataData DescriptionDescription
id Resurs-IDResource ID
offer Erbjudande om plattforms- eller marketplace-avbildningOffer of the platform or marketplace image
publisher AvbildningsutgivareImage publisher
sku Bild-SKUImage sku
version Version av plattformen eller Marketplace-avbildningenVersion of the platform or marketplace image

OS-diskobjektet innehåller följande information om OS-disken som används av den virtuella datorn:The OS disk object contains the following information about the OS disk used by the VM:

DataData DescriptionDescription
caching Krav för cachelagringCaching requirements
createOption Information om hur den virtuella datorn skapadesInformation about how the VM was created
diffDiskSettings Tillfälliga diskinställningarEphemeral disk settings
diskSizeGB Diskens storlek i GBSize of the disk in GB
image Virtuell hårddisk för källanvändaravbildningSource user image virtual hard disk
lun Diskens logiska enhetsnummerLogical unit number of the disk
managedDisk Parametrar för hanterade diskarManaged disk parameters
name DisknamnDisk name
vhd Virtuell hårddiskVirtual hard disk
writeAcceleratorEnabled Huruvida writeAccelerator är aktiverat på disken eller inteWhether or not writeAccelerator is enabled on the disk

Matrisen för datadiskar innehåller en lista över datadiskar som är anslutna till den virtuella datorn.The data disks array contains a list of data disks attached to the VM. Varje datadiskobjekt innehåller följande information:Each data disk object contains the following information:

DataData DescriptionDescription
caching Krav för cachelagringCaching requirements
createOption Information om hur den virtuella datorn skapadesInformation about how the VM was created
diffDiskSettings Tillfälliga diskinställningarEphemeral disk settings
diskSizeGB Diskens storlek i GBSize of the disk in GB
encryptionSettings Krypteringsinställningar för diskenEncryption settings for the disk
image Virtuell hårddisk för källanvändaravbildningSource user image virtual hard disk
managedDisk Hanterade diskparametrarManaged disk parameters
name DisknamnDisk name
osType Typ av operativsystem som ingår i diskenType of OS included in the disk
vhd Virtuell hårddiskVirtual hard disk
writeAcceleratorEnabled Huruvida writeAccelerator är aktiverat på disken eller inteWhether or not writeAccelerator is enabled on the disk

NätverkNetwork

DataData DescriptionDescription Version introduceradVersion introduced
ipv4.privateIpAddress Den virtuella datorns lokala IPv4-adressLocal IPv4 address of the VM 2017-04-022017-04-02
ipv4.publicIpAddress Den virtuella datorns offentliga IPv4-adressPublic IPv4 address of the VM 2017-04-022017-04-02
subnet.address Den virtuella datorns undernätsadressSubnet address of the VM 2017-04-022017-04-02
subnet.prefix Undernätsprefix, exempel 24Subnet prefix, example 24 2017-04-022017-04-02
ipv6.ipAddress Den virtuella datorns lokala IPv6-adressLocal IPv6 address of the VM 2017-04-022017-04-02
macAddress Mac-adress för virtuell datorVM mac address 2017-04-022017-04-02

Hämta användardataGet user data

När du skapar en ny virtuell dator kan du ange en uppsättning data som ska användas under eller efter etableringen av den virtuella datorn och hämta dem via IMDS.When creating a new VM, you can specify a set of data to be used during or after the VM provision, and retrieve it through IMDS. Om du vill konfigurera användardata använder du snabbstartsmallen här.To set up user data, utilize the quickstart template here. Exemplet nedan visar hur du hämtar dessa data via IMDS.The sample below shows how to retrieve this data through IMDS.

Anteckning

Den här funktionen lanseras med version och är beroende av en uppdatering av Azure-plattformen, som för närvarande distribueras och kanske ännu inte 2021-01-01 är tillgänglig i varje region.This feature is released with version 2021-01-01 and depends upon an update to the Azure platform, which is currently being rolled out and may not yet be available in every region.

Anteckning

Säkerhetsmeddelande: IMDS är öppet för alla program på den virtuella datorn, känsliga data ska inte placeras i användardata.Security notice: IMDS is open to all applications on the VM, sensitive data should not be placed in the user data.

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/userData?api-version=2021-01-01&format=text" | base64 --decode

Exempel 1: Spåra virtuella datorer som körs på AzureSample 1: Tracking VM running on Azure

Som tjänstleverantör kan du behöva spåra antalet virtuella datorer som kör din programvara eller ha agenter som behöver spåra den virtuella datorns unika egenskaper.As a service provider, you may require to track the number of VMs running your software or have agents that need to track uniqueness of the VM. Om du vill kunna hämta ett unikt ID för en virtuell dator använder du vmId fältet från Instance Metadata Service.To be able to get a unique ID for a VM, use the vmId field from Instance Metadata Service.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/vmId?api-version=2017-08-01&format=text"

ResponseResponse

5c08b38e-4d57-4c23-ac45-aca61037f084

Exempel 2: Placering av olika datareplikerSample 2: Placement of different data replicas

För vissa scenarier är placering av olika datarepliker av största vikt.For certain scenarios, placement of different data replicas is of prime importance. HdFS-replikplacering eller containerplacering via en initierare kan till exempel kräva att du känner till och platformFaultDomain att den virtuella datorn körs platformUpdateDomain på.For example, HDFS replica placement or container placement via an orchestrator might require you to know the platformFaultDomain and platformUpdateDomain the VM is running on. Du kan också använda Tillgänglighetszoner för instanserna för att fatta dessa beslut.You can also use Availability Zones for the instances to make these decisions. Du kan köra frågor mot dessa data direkt via IMDS.You can query this data directly via IMDS.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/platformFaultDomain?api-version=2017-08-01&format=text"

ResponseResponse

0

Exempel 3: Hämta VM-taggarSample 3: Get VM tags

VM-taggar ingår i instans-API:et under slutpunkten instans/beräkning/taggar.VM tags are included the instance API under instance/compute/tags endpoint. Taggar kan ha tillämpats på din virtuella Azure-dator för att logiskt organisera dem i en taxonomi.Tags may have been applied to your Azure VM to logically organize them into a taxonomy. Taggarna som tilldelats en virtuell dator kan hämtas med hjälp av begäran nedan.The tags assigned to a VM can be retrieved by using the request below.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/tags?api-version=2017-08-01&format=text"

ResponseResponse

Department:IT;ReferenceNumber:123456;TestStatus:Pending

Fältet tags är en sträng med taggar som avgränsas med semikolon.The tags field is a string with the tags delimited by semicolons. Dessa utdata kan vara ett problem om semikolon används i själva taggarna.This output can be a problem if semicolons are used in the tags themselves. Om en parser skrivs för att programmatiskt extrahera taggarna bör du förlita dig på tagsList fältet .If a parser is written to programmatically extract the tags, you should rely on the tagsList field. Fältet tagsList är en JSON-matris utan avgränsare och därför enklare att parsa.The tagsList field is a JSON array with no delimiters, and consequently, easier to parse. TagsList som tilldelats en virtuell dator kan hämtas med hjälp av begäran nedan.The tagsList assigned to a VM can be retrieved by using the request below.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/tagsList?api-version=2019-06-04" | ConvertTo-Json -Depth 64

ResponseResponse

{
    "value":  [
                  {
                      "name":  "Department",
                      "value":  "IT"
                  },
                  {
                      "name":  "ReferenceNumber",
                      "value":  "123456"
                  },
                  {
                      "name":  "TestStatus",
                      "value":  "Pending"
                  }
              ],
    "Count":  3
}

Exempel 4: Få mer information om den virtuella datorn under supportfallSample 4: Get more information about the VM during support case

Som tjänstleverantör kan du få ett supportsamtal där du vill veta mer om den virtuella datorn.As a service provider, you may get a support call where you would like to know more information about the VM. Att be kunden att dela beräkningsmetadata kan ge supporten grundläggande information om vilken typ av virtuell dator som finns i Azure.Asking the customer to share the compute metadata can provide basic information for the support professional to know about the kind of VM on Azure.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute?api-version=2020-09-01" | ConvertTo-Json -Depth 64

ResponseResponse

Anteckning

Svaret är en JSON-sträng.The response is a JSON string. Följande exempelsvar är ganska utskrivet för läsbarhet.The following example response is pretty-printed for readability.

{
    "azEnvironment": "AZUREPUBLICCLOUD",
    "isHostCompatibilityLayerVm": "true",
    "licenseType":  "Windows_Client",
    "location": "westus",
    "name": "examplevmname",
    "offer": "WindowsServer",
    "osProfile": {
        "adminUsername": "admin",
        "computerName": "examplevmname",
        "disablePasswordAuthentication": "true"
    },
    "osType": "Windows",
    "placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
    "plan": {
        "name": "planName",
        "product": "planProduct",
        "publisher": "planPublisher"
    },
    "platformFaultDomain": "36",
    "platformUpdateDomain": "42",
    "publicKeys": [{
            "keyData": "ssh-rsa 0",
            "path": "/home/user/.ssh/authorized_keys0"
        },
        {
            "keyData": "ssh-rsa 1",
            "path": "/home/user/.ssh/authorized_keys1"
        }
    ],
    "publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
    "resourceGroupName": "macikgo-test-may-23",
    "resourceId": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
    "securityProfile": {
        "secureBootEnabled": "true",
        "virtualTpmEnabled": "false"
    },
    "sku": "2019-Datacenter",
    "storageProfile": {
        "dataDisks": [{
            "caching": "None",
            "createOption": "Empty",
            "diskSizeGB": "1024",
            "image": {
                "uri": ""
            },
            "lun": "0",
            "managedDisk": {
                "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
                "storageAccountType": "Standard_LRS"
            },
            "name": "exampledatadiskname",
            "vhd": {
                "uri": ""
            },
            "writeAcceleratorEnabled": "false"
        }],
        "imageReference": {
            "id": "",
            "offer": "WindowsServer",
            "publisher": "MicrosoftWindowsServer",
            "sku": "2019-Datacenter",
            "version": "latest"
        },
        "osDisk": {
            "caching": "ReadWrite",
            "createOption": "FromImage",
            "diskSizeGB": "30",
            "diffDiskSettings": {
                "option": "Local"
            },
            "encryptionSettings": {
                "enabled": "false"
            },
            "image": {
                "uri": ""
            },
            "managedDisk": {
                "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
                "storageAccountType": "Standard_LRS"
            },
            "name": "exampleosdiskname",
            "osType": "Windows",
            "vhd": {
                "uri": ""
            },
            "writeAcceleratorEnabled": "false"
        }
    },
    "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "tags": "baz:bash;foo:bar",
    "version": "15.05.22",
    "vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
    "vmScaleSetName": "crpteste9vflji9",
    "vmSize": "Standard_A3",
    "zone": ""
}

Exempel 5: Hämta Azure-miljön där den virtuella datorn körsSample 5: Get the Azure Environment where the VM is running

Azure har olika nationella moln som Azure Government.Azure has various sovereign clouds like Azure Government. Ibland behöver du Azure-miljön för att fatta vissa körningsbeslut.Sometimes you need the Azure Environment to make some runtime decisions. I följande exempel visas hur du kan uppnå det här beteendet.The following sample shows you how you can achieve this behavior.

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/compute/azEnvironment?api-version=2018-10-01&format=text"

ResponseResponse

AzurePublicCloud

Molnet och värdena för Azure-miljön visas här.The cloud and the values of the Azure environment are listed here.

MolnCloud Azure-miljöAzure environment
Alla allmänt tillgängliga globala Azure-regionerAll generally available global Azure regions AzurePublicCloudAzurePublicCloud
Azure GovernmentAzure Government AzureUSGovernmentCloudAzureUSGovernmentCloud
Azure Kina 21VianetAzure China 21Vianet AzureChinaCloudAzureChinaCloud
Azure TysklandAzure Germany AzureGermanCloudAzureGermanCloud

Exempel 6: Hämta nätverksinformationSample 6: Retrieve network information

FörfråganRequest

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/network?api-version=2017-08-01" | ConvertTo-Json  -Depth 64

ResponseResponse

{
  "interface": [
    {
      "ipv4": {
        "ipAddress": [
          {
            "privateIpAddress": "10.1.0.4",
            "publicIpAddress": "X.X.X.X"
          }
        ],
        "subnet": [
          {
            "address": "10.1.0.0",
            "prefix": "24"
          }
        ]
      },
      "ipv6": {
        "ipAddress": []
      },
      "macAddress": "000D3AF806EC"
    }
  ]
}

Exempel 7: Hämta offentlig IP-adressSample 7: Retrieve public IP address

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text"

Attesterade dataAttested data

Hämta attesterade dataGet Attested data

IMDS hjälper till att ge garantier om att de data som tillhandahålls kommer från Azure.IMDS helps to provide guarantees that the data provided is coming from Azure. Microsoft signerar en del av den här informationen så att du kan bekräfta att en Azure Marketplace är den som du kör i Azure.Microsoft signs part of this information, so you can confirm that an image in Azure Marketplace is the one you are running on Azure.

GET /metadata/attested/document

ParametrarParameters

NameName Obligatorisk/valfriRequired/Optional BeskrivningDescription
api-version KrävsRequired Den version som används för att skicka begäran.The version used to service the request.
nonce ValfrittOptional En 10-siffrig sträng som fungerar som en kryptografisk nonce.A 10-digit string that serves as a cryptographic nonce. Om inget värde anges använder IMDS den aktuella UTC-tidsstämpeln.If no value is provided, IMDS uses the current UTC timestamp.

SvarsåtgärderResponse

{
    "encoding":"pkcs7",
    "signature":"MIIEEgYJKoZIhvcNAQcCoIIEAzCCA/8CAQExDzANBgkqhkiG9w0BAQsFADCBugYJKoZIhvcNAQcBoIGsBIGpeyJub25jZSI6IjEyMzQ1NjY3NjYiLCJwbGFuIjp7Im5hbWUiOiIiLCJwcm9kdWN0IjoiIiwicHVibGlzaGVyIjoiIn0sInRpbWVTdGFtcCI6eyJjcmVhdGVkT24iOiIxMS8yMC8xOCAyMjowNzozOSAtMDAwMCIsImV4cGlyZXNPbiI6IjExLzIwLzE4IDIyOjA4OjI0IC0wMDAwIn0sInZtSWQiOiIifaCCAj8wggI7MIIBpKADAgECAhBnxW5Kh8dslEBA0E2mIBJ0MA0GCSqGSIb3DQEBBAUAMCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tMB4XDTE4MTEyMDIxNTc1N1oXDTE4MTIyMDIxNTc1NlowKzEpMCcGA1UEAxMgdGVzdHN1YmRvbWFpbi5tZXRhZGF0YS5henVyZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAML/tBo86ENWPzmXZ0kPkX5dY5QZ150mA8lommszE71x2sCLonzv4/UWk4H+jMMWRRwIea2CuQ5RhdWAHvKq6if4okKNt66fxm+YTVz9z0CTfCLmLT+nsdfOAsG1xZppEapC0Cd9vD6NCKyE8aYI1pliaeOnFjG0WvMY04uWz2MdAgMBAAGjYDBeMFwGA1UdAQRVMFOAENnYkHLa04Ut4Mpt7TkJFfyhLTArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbYIQZ8VuSofHbJRAQNBNpiASdDANBgkqhkiG9w0BAQQFAAOBgQCLSM6aX5Bs1KHCJp4VQtxZPzXF71rVKCocHy3N9PTJQ9Fpnd+bYw2vSpQHg/AiG82WuDFpPReJvr7Pa938mZqW9HUOGjQKK2FYDTg6fXD8pkPdyghlX5boGWAMMrf7bFkup+lsT+n2tRw2wbNknO1tQ0wICtqy2VqzWwLi45RBwTGB6DCB5QIBATA/MCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tAhBnxW5Kh8dslEBA0E2mIBJ0MA0GCSqGSIb3DQEBCwUAMA0GCSqGSIb3DQEBAQUABIGAld1BM/yYIqqv8SDE4kjQo3Ul/IKAVR8ETKcve5BAdGSNkTUooUGVniTXeuvDj5NkmazOaKZp9fEtByqqPOyw/nlXaZgOO44HDGiPUJ90xVYmfeK6p9RpJBu6kiKhnnYTelUk5u75phe5ZbMZfBhuPhXmYAdjc7Nmw97nx8NnprQ="
}

Anteckning

På grund av IMDS:s cachelagringsmekanism kan ett tidigare cachelagrat nonce-värde returneras.Due to IMDS's caching mechanism, a previously cached nonce value may be returned.

Signaturbloben är en pkcs7-signeradversion av dokumentet.The signature blob is a pkcs7-signed version of document. Den innehåller certifikatet som används för signering tillsammans med viss VM-specifik information.It contains the certificate used for signing along with certain VM-specific details.

För virtuella datorer som skapats med Azure Resource Manager innehåller dokumentet , , , , för att skapa och förfalla för dokumentet, samt vmId sku nonce subscriptionId timeStamp planinformation om avbildningen.For VMs created by using Azure Resource Manager, the document includes vmId, sku, nonce, subscriptionId, timeStamp for creation and expiry of the document, and the plan information about the image. Planinformationen fylls bara i för Azure Marketplace bilder.The plan information is only populated for Azure Marketplace images.

För virtuella datorer som skapats med hjälp av den klassiska vmId distributionsmodellen fylls endast i.For VMs created by using the classic deployment model, only the vmId is guaranteed to be populated. Du kan extrahera certifikatet från svaret och använda det för att bekräfta att svaret är giltigt och kommer från Azure.You can extract the certificate from the response, and use it to confirm that the response is valid and is coming from Azure.

Det avkodade dokumentet innehåller följande fält:The decoded document contains the following fields:

DataData DescriptionDescription Version introduceradVersion introduced
licenseType Typ av licens för Azure Hybrid-förmån.Type of license for Azure Hybrid Benefit. Detta gäller endast för AHB-aktiverade virtuella datorer.This is only present for AHB-enabled VMs. 2020-09-012020-09-01
nonce En sträng som kan anges med begäran om du vill.A string that can be optionally provided with the request. Om ingen nonce har angetts används den Coordinated Universal Time tidsstämpeln.If no nonce was supplied, the current Coordinated Universal Time timestamp is used. 2018-10-012018-10-01
plan Avbildningsplanen Azure Marketplace .The Azure Marketplace Image plan. Innehåller plan-ID (namn), produktavbildning eller erbjudande (produkt) och utgivar-ID (utgivare).Contains the plan ID (name), product image or offer (product), and publisher ID (publisher). 2018-10-012018-10-01
timestamp.createdOn UTC-tidsstämpeln för när det signerade dokumentet skapadesThe UTC timestamp for when the signed document was created 2018-20-012018-20-01
timestamp.expiresOn UTC-tidsstämpeln för när det signerade dokumentet upphör att gällaThe UTC timestamp for when the signed document expires 2018-10-012018-10-01
vmId Unik identifierare för den virtuella datornUnique identifier for the VM 2018-10-012018-10-01
subscriptionId Azure-prenumeration för den virtuella datornAzure subscription for the Virtual Machine 2019-04-302019-04-30
sku Specifik SKU för VM-avbildningenSpecific SKU for the VM image 2019-11-012019-11-01

Anteckning

För klassiska (icke-Azure Resource Manager) virtuella datorer är det garanterat bara vmId som fylls i.For Classic (non-Azure Resource Manager) VMs, only the vmId is guaranteed to be populated.

Exempeldokument:Example document:

{
   "nonce":"20201130-211924",
   "plan":{
      "name":"planName",
      "product":"planProduct",
      "publisher":"planPublisher"
   },
   "sku":"Windows-Server-2012-R2-Datacenter",
   "subscriptionId":"8d10da13-8125-4ba9-a717-bf7490507b3d",
   "timeStamp":{
      "createdOn":"11/30/20 21:19:19 -0000",
      "expiresOn":"11/30/20 21:19:24 -0000"
   },
   "vmId":"02aab8a4-74ef-476e-8182-f6d2ba4166a6"
}

Exempel 1: Verifiera att den virtuella datorn körs i AzureSample 1: Validate that the VM is running in Azure

Leverantörer i Azure Marketplace vill se till att deras programvara är licensierad att endast köras i Azure.Vendors in Azure Marketplace want to ensure that their software is licensed to run only in Azure. Om någon kopierar den virtuella hårddisken till en lokal miljö måste leverantören kunna identifiera den.If someone copies the VHD to an on-premises environment, the vendor needs to be able to detect that. Via IMDS kan dessa leverantörer hämta signerade data som endast garanterar svar från Azure.Through IMDS, these vendors can get signed data that guarantees response only from Azure.

Anteckning

Det här exemplet kräver att jq-verktyget installeras.This sample requires the jq utility to be installed.

ValideringValidation

# Get the signature
$attestedDoc = Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Proxy $Null -Uri http://169.254.169.254/metadata/attested/document?api-version=2020-09-01
# Decode the signature
$signature = [System.Convert]::FromBase64String($attestedDoc.signature)

Kontrollera att signaturen kommer Microsoft Azure och kontrollera om certifikatkedjan innehåller fel.Verify that the signature is from Microsoft Azure and check the certificate chain for errors.

# Get certificate chain
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]($signature)
$chain = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Chain
$chain.Build($cert)
# Print the Subject of each certificate in the chain
foreach($element in $chain.ChainElements)
{
    Write-Host $element.Certificate.Subject
}

# Get the content of the signed document
Add-Type -AssemblyName System.Security
$signedCms = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$signedCms.Decode($signature);
$content = [System.Text.Encoding]::UTF8.GetString($signedCms.ContentInfo.Content)
Write-Host "Attested data: " $content
$json = $content | ConvertFrom-Json
# Do additional validation here

Anteckning

På grund av IMDS:s cachelagringsmekanism kan ett tidigare nonce cachelagrat värde returneras.Due to IMDS's caching mechanism, a previously cached nonce value might be returned.

I nonce det signerade dokumentet kan jämföras om du har angett en nonce parameter i den första begäran.The nonce in the signed document can be compared if you provided a nonce parameter in the initial request.

Anteckning

Certifikatet för det offentliga molnet och varje suveränt moln kommer att vara olika.The certificate for the public cloud and each sovereign cloud will be different.

MolnCloud CertifikatCertificate
Alla allmänt tillgängliga globala Azure-regionerAll generally available global Azure regions *.metadata.azure.com*.metadata.azure.com
Azure GovernmentAzure Government *.metadata.azure.us*.metadata.azure.us
Azure Kina 21VianetAzure China 21Vianet *.metadata.azure.cn*.metadata.azure.cn
Azure TysklandAzure Germany *.metadata.microsoftazure.de*.metadata.microsoftazure.de

Anteckning

Certifikaten kanske inte matchar det metadata.azure.com offentliga molnet exakt.The certificates might not have an exact match of metadata.azure.com for the public cloud. Därför bör certifieringsverifieringen tillåta ett eget namn från alla .metadata.azure.com underdomäner.For this reason, the certification validation should allow a common name from any .metadata.azure.com subdomain.

I de fall där det mellanliggande certifikatet inte kan laddas ned på grund av nätverksbegränsningar under verifieringen kan du fästa det mellanliggande certifikatet.In cases where the intermediate certificate can't be downloaded due to network constraints during validation, you can pin the intermediate certificate. Azure rullar över certifikaten, vilket är vanlig PKI-praxis.Azure rolls over the certificates, which is standard PKI practice. Du måste uppdatera de fästa certifikaten när en rollover sker.You must update the pinned certificates when rollover happens. När en ändring av mellanliggande certifikat planeras uppdateras Azure-bloggen och Azure-kunder meddelas.Whenever a change to update the intermediate certificate is planned, the Azure blog is updated, and Azure customers are notified.

Mellanliggande certifikat finns på PKI-lagringsplatsen.You can find the intermediate certificates in the PKI repository. De mellanliggande certifikaten för var och en av regionerna kan vara olika.The intermediate certificates for each of the regions can be different.

Anteckning

Det mellanliggande certifikatet för Azure China 21Vianet kommer från DigiCert Global Root CA i stället för Baltimore.The intermediate certificate for Azure China 21Vianet will be from DigiCert Global Root CA, instead of Baltimore. Om du har fäst mellanliggande certifikat för Azure Kina som en del av en ändring av rotkedjeutfärdaren måste mellanliggande certifikat uppdateras.If you pinned the intermediate certificates for Azure China as part of a root chain authority change, the intermediate certificates must be updated.

Hanterad identitetManaged identity

En hanterad identitet som tilldelats av systemet kan aktiveras på den virtuella datorn.A managed identity, assigned by the system, can be enabled on the VM. Du kan också tilldela en eller flera användar tilldelade hanterade identiteter till den virtuella datorn.You can also assign one or more user-assigned managed identities to the VM. Du kan sedan begära token för hanterade identiteter från IMDS.You can then request tokens for managed identities from IMDS. Använd dessa token för att autentisera med andra Azure-tjänster, till exempel Azure Key Vault.Use these tokens to authenticate with other Azure services, such as Azure Key Vault.

Detaljerade anvisningar för hur du aktiverar den här funktionen finns i Hämta en åtkomsttoken.For detailed steps to enable this feature, see Acquire an access token.

Load Balancer MetadataLoad Balancer Metadata

När du placerar instanser av virtuella datorer eller virtuella datoruppsättningsinstanser bakom en Azure Standard Load Balancer kan du använda IMDS för att hämta metadata relaterade till lastbalanseraren och instanserna.When you place virtual machine or virtual machine set instances behind an Azure Standard Load Balancer, you can use IMDS to retrieve metadata related to the load balancer and the instances. Mer information finns i Hämta information om lastbalanserare.For more information, see Retrieve load balancer information.

Schemalagda händelserScheduled events

Du kan hämta status för schemalagda händelser med hjälp av IMDS.You can obtain the status of the scheduled events by using IMDS. Användaren kan sedan ange en uppsättning åtgärder som ska köras på dessa händelser.Then the user can specify a set of actions to run upon these events. Mer information finns i Schemalagda händelser för Linux eller Schemalagda händelser för Windows.For more information, see Scheduled events for Linux or Scheduled events for Windows.

Exempelkod på olika språkSample code in different languages

I följande tabell visas exempel på anrop av IMDS med hjälp av olika språk i den virtuella datorn:The following table lists samples of calling IMDS by using different languages inside the VM:

SpråkLanguage ExempelExample
BashBash https://github.com/Microsoft/azureimds/blob/master/IMDSSample.sh
C#C# https://github.com/Microsoft/azureimds/blob/master/IMDSSample.cs
GoGo https://github.com/Microsoft/azureimds/blob/master/imdssample.go
JavaJava https://github.com/Microsoft/azureimds/blob/master/imdssample.java
NodeJSNodeJS https://github.com/Microsoft/azureimds/blob/master/IMDSSample.js
PerlPerl https://github.com/Microsoft/azureimds/blob/master/IMDSSample.pl
PowerShellPowerShell https://github.com/Microsoft/azureimds/blob/master/IMDSSample.ps1
PuppetPuppet https://github.com/keirans/azuremetadata
PythonPython https://github.com/Microsoft/azureimds/blob/master/IMDSSample.py
RubyRuby https://github.com/Microsoft/azureimds/blob/master/IMDSSample.rb

Fel och felsökningErrors and debugging

Om ett dataelement inte hittas eller en felaktig begäran returneras Instance Metadata Service http-standardfel.If there is a data element not found or a malformed request, the Instance Metadata Service returns standard HTTP errors. Exempel:For example:

HTTP-statuskodHTTP status code AnledningReason
200 OK Begäran lyckades.The request was successful.
400 Bad Request Saknar Metadata: true rubrik eller parameter som saknas när du frågar en format=json lövnodMissing Metadata: true header or missing parameter format=json when querying a leaf node
404 Not Found Det begärda elementet finns inteThe requested element doesn't exist
405 Method Not Allowed HTTP-metoden (verb) stöds inte på slutpunkten.The HTTP method (verb) is not supported on the endpoint.
410 Gone Försök igen efter en stund i högst 70 sekunderRetry after some time for a max of 70 seconds
429 Too Many Requests API-hastighetsbegränsningar har överskriditsAPI Rate Limits have been exceeded
500 Service Error Försök igen efter en stundRetry after some time

Vanliga frågor och svarFrequently asked questions

  • Jag får felet 400 Bad Request, Required metadata header not specified .I am getting the error 400 Bad Request, Required metadata header not specified. Vad betyder detta?What does this mean?

    • IMDS kräver att Metadata: true -huvudet skickas i begäran.IMDS requires the header Metadata: true to be passed in the request. Genom att skicka det här huvudet i REST-anropet får du åtkomst till IMDS.Passing this header in the REST call allows access to IMDS.
  • Varför får jag inte beräkningsinformation för min virtuella dator?Why am I not getting compute information for my VM?

    • IMDS stöder för närvarande endast instanser som skapats med Azure Resource Manager.Currently, IMDS only supports instances created with Azure Resource Manager.
  • Jag skapade min virtuella dator via Azure Resource Manager för en tid sedan.I created my VM through Azure Resource Manager some time ago. Varför ser jag inte information om beräkningsmetadata?Why am I not seeing compute metadata information?

    • Om du har skapat den virtuella datorn efter september 2016 lägger du till en tagg för att börja se beräkningsmetadata.If you created your VM after September 2016, add a tag to start seeing compute metadata. Om du har skapat den virtuella datorn före september 2016 lägger du till eller tar bort tillägg eller datadiskar till VM-instansen för att uppdatera metadata.If you created your VM before September 2016, add or remove extensions or data disks to the VM instance to refresh metadata.
  • Är användardata samma som anpassade data?Is user data the same as custom data?

    • Användardata har liknande funktioner som anpassade data, så att du kan skicka dina egna metadata till den virtuella datorinstansen.User data offers the similar functionality to custom data, allowing you to pass your own metadata to the VM instance. Skillnaden är att användardata hämtas via IMDS och är beständiga under hela livslängden för den virtuella datorinstansen.The difference is, user data is retrieved through IMDS, and is persistent throughout the lifetime of the VM instance. Befintlig anpassad datafunktion fortsätter att fungera enligt beskrivningen i den här artikeln.Existing custom data feature will continue to work as described in this article. Du kan dock bara hämta anpassade data via den lokala systemmappen, inte via IMDS.However you can only get custom data through local system folder, not through IMDS.
  • Varför ser jag inte alla data ifyllda för en ny version?Why am I not seeing all data populated for a new version?

    • Om du har skapat den virtuella datorn efter september 2016 lägger du till en tagg för att börja se beräkningsmetadata.If you created your VM after September 2016, add a tag to start seeing compute metadata. Om du har skapat den virtuella datorn före september 2016 lägger du till eller tar bort tillägg eller datadiskar till VM-instansen för att uppdatera metadata.If you created your VM before September 2016, add or remove extensions or data disks to the VM instance to refresh metadata.
  • Varför får jag felet 500 Internal Server Error eller 410 Resource Gone ?Why am I getting the error 500 Internal Server Error or 410 Resource Gone?

    • Försök igen med din begäran.Retry your request. Mer information finns i Hantering av tillfälliga fel.For more information, see Transient fault handling. Om problemet kvarstår skapar du ett supportproblem i Azure Portal för den virtuella datorn.If the problem persists, create a support issue in the Azure portal for the VM.
  • Skulle detta fungera för VM-skalningsuppsättningsinstanser?Would this work for virtual machine scale set instances?

    • Ja, IMDS är tillgängligt för vm-skalningsuppsättningsinstanser.Yes, IMDS is available for virtual machine scale set instances.
  • Jag har uppdaterat mina taggar i VM-skalningsuppsättningar, men de visas inte i instanserna (till skillnad från virtuella datorer med en instans).I updated my tags in virtual machine scale sets, but they don't appear in the instances (unlike single instance VMs). Gör jag något fel?Am I doing something wrong?

    • Taggar för VM-skalningsuppsättningar visas för närvarande endast för den virtuella datorn vid en omstart, avbildning eller diskändring av instansen.Currently tags for virtual machine scale sets only show to the VM on a reboot, reimage, or disk change to the instance.
  • Varför ser jag inte SKU-informationen för min virtuella dator i instance/compute detalj?Why am I am not seeing the SKU information for my VM in instance/compute details?

    • För anpassade avbildningar Azure Marketplace behåller Azure-plattformen inte SKU-informationen för den anpassade avbildningen och informationen för virtuella datorer som skapats från den anpassade avbildningen.For custom images created from Azure Marketplace, Azure platform doesn't retain the SKU information for the custom image and the details for any VMs created from the custom image. Detta är enligt design och kan därför inte visas i informationen om den virtuella instance/compute datorn.This is by design and hence not surfaced in the VM instance/compute details.
  • Varför har min begäran time out för mitt anrop till tjänsten?Why is my request timed out for my call to the service?

    • Metadata-anrop måste göras från den primära IP-adressen som tilldelats till den virtuella datorns primära nätverkskort.Metadata calls must be made from the primary IP address assigned to the primary network card of the VM. Om du har ändrat vägarna måste det dessutom finnas en väg för adressen 169.254.169.254/32 i den virtuella datorns lokala routningstabell.Additionally, if you've changed your routes, there must be a route for the 169.254.169.254/32 address in your VM's local routing table.

      1. Dumpa din lokala routningstabell och leta efter IMDS-posten.Dump your local routing table and look for the IMDS entry. Exempel:For example:
        > route print
        IPv4 Route Table
        ===========================================================================
        Active Routes:
        Network Destination        Netmask          Gateway       Interface  Metric
                0.0.0.0          0.0.0.0      172.16.69.1      172.16.69.7     10
                127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
                127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
        127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
            168.63.129.16  255.255.255.255      172.16.69.1      172.16.69.7     11
        169.254.169.254  255.255.255.255      172.16.69.1      172.16.69.7     11
        ... (continues) ...
        
      2. Kontrollera att det finns en väg för 169.254.169.254 och notera motsvarande nätverksgränssnitt (till exempel 172.16.69.7 ).Verify that a route exists for 169.254.169.254, and note the corresponding network interface (for example, 172.16.69.7).
      3. Dumpa gränssnittskonfigurationen och leta upp det gränssnitt som motsvarar det som refereras till i routningstabellen och se MAC-adressen (fysisk).Dump the interface configuration and find the interface that corresponds to the one referenced in the routing table, noting the MAC (physical) address.
        > ipconfig /all
        ... (continues) ...
        Ethernet adapter Ethernet:
        
        Connection-specific DNS Suffix  . : xic3mnxjiefupcwr1mcs1rjiqa.cx.internal.cloudapp.net
        Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter
        Physical Address. . . . . . . . . : 00-0D-3A-E5-1C-C0
        DHCP Enabled. . . . . . . . . . . : Yes
        Autoconfiguration Enabled . . . . : Yes
        Link-local IPv6 Address . . . . . : fe80::3166:ce5a:2bd5:a6d1%3(Preferred)
        IPv4 Address. . . . . . . . . . . : 172.16.69.7(Preferred)
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        ... (continues) ...
        
      4. Bekräfta att gränssnittet motsvarar den virtuella datorns primära nätverkskort och primära IP-adress.Confirm that the interface corresponds to the VM's primary NIC and primary IP. Du hittar det primära nätverkskortet och IP-adressen genom att titta på nätverkskonfigurationen i Azure Portal, eller genom att leta upp det med Azure CLI.You can find the primary NIC and IP by looking at the network configuration in the Azure portal, or by looking it up with the Azure CLI. Anteckna de privata IP-adresserna (och MAC-adressen om du använder CLI).Note the private IPs (and the MAC address if you're using the CLI). Här är ett PowerShell CLI-exempel:Here's a PowerShell CLI example:
        $ResourceGroup = '<Resource_Group>'
        $VmName = '<VM_Name>'
        $NicNames = az vm nic list --resource-group $ResourceGroup --vm-name $VmName | ConvertFrom-Json | Foreach-Object { $_.id.Split('/')[-1] }
        foreach($NicName in $NicNames)
        {
            $Nic = az vm nic show --resource-group $ResourceGroup --vm-name $VmName --nic $NicName | ConvertFrom-Json
            Write-Host $NicName, $Nic.primary, $Nic.macAddress
        }
        # Output: wintest767 True 00-0D-3A-E5-1C-C0
        
      5. Om de inte matchar uppdaterar du routningstabellen så att det primära nätverkskortet och IP-adressen är mål.If they don't match, update the routing table so that the primary NIC and IP are targeted.

  • Redundansklustring i Windows ServerFailover clustering in Windows Server

    • När du kör frågor mot IMDS med redundansklustring är det ibland nödvändigt att lägga till en väg i routningstabellen.When you're querying IMDS with failover clustering, it's sometimes necessary to add a route to the routing table. Gör så här:Here's how:

      1. Öppna en kommandotolk med administratörsbehörighet.Open a command prompt with administrator privileges.

      2. Kör följande kommando och anteckna adressen för gränssnittet för nätverksmål ( 0.0.0.0 ) i IPv4-vägtabellen.Run the following command, and note the address of the Interface for Network Destination (0.0.0.0) in the IPv4 Route Table.

      route print
      

      Anteckning

      Följande exempelutdata kommer från en virtuell Windows Server-dator med redundanskluster aktiverat.The following example output is from a Windows Server VM with failover cluster enabled. För enkelhetens skull innehåller utdata endast IPv4-vägtabellen.For simplicity, the output contains only the IPv4 Route Table.

      IPv4 Route Table
      ===========================================================================
      Active Routes:
      Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         10.0.1.1        10.0.1.10    266
              10.0.1.0  255.255.255.192         On-link         10.0.1.10    266
              10.0.1.10  255.255.255.255         On-link         10.0.1.10    266
              10.0.1.15  255.255.255.255         On-link         10.0.1.10    266
              10.0.1.63  255.255.255.255         On-link         10.0.1.10    266
              127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
              127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
      127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
          169.254.0.0      255.255.0.0         On-link     169.254.1.156    271
          169.254.1.156  255.255.255.255         On-link     169.254.1.156    271
      169.254.255.255  255.255.255.255         On-link     169.254.1.156    271
              224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
              224.0.0.0        240.0.0.0         On-link     169.254.1.156    271
      255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      255.255.255.255  255.255.255.255         On-link     169.254.1.156    271
      255.255.255.255  255.255.255.255         On-link         10.0.1.10    266
      

      Kör följande kommando och använd adressen för Gränssnittet för nätverksmål ( 0.0.0.0 ), som är ( ) i det här 10.0.1.10 exemplet.Run the following command and use the address of the Interface for Network Destination (0.0.0.0), which is (10.0.1.10) in this example.

      route add 169.254.169.254/32 10.0.1.10 metric 1 -p
      

SupportSupport

Om du inte kan få ett metadatasvar efter flera försök kan du skapa ett supportproblem i Azure Portal.If you aren't able to get a metadata response after multiple attempts, you can create a support issue in the Azure portal.

ProduktfeedbackProduct feedback

Du kan ge produktfeedback och idéer till vår kanal för användarfeedback under Virtual Machines > Instance Metadata Service härYou can provide product feedback and ideas to our user feedback channel under Virtual Machines > Instance Metadata Service here

Nästa stegNext steps