Azure Metadata Service: Schemalagda händelser för Windows virtuella datorer

Version Versionstyp Regioner Viktig information
2020-07-01 Allmän tillgänglighet Alla
  • Stöd för händelsevaraktighet har lagts till
  • 2019-08-01 Allmän tillgänglighet Alla
  • Stöd för EventSource har lagts till
  • 2019-04-01 Allmän tillgänglighet Alla
  • Stöd för händelsebeskrivning har lagts till
  • 2019-01-01 Allmän tillgänglighet Alla
  • Stöd för VM-skalningsuppsättningar för EventType "Terminate" har lagts till
  • 2017-11-01 Allmän tillgänglighet Alla
  • Stöd har lagts till för EventType Preempt för vm-avlägsning för VM med spot
  • 2017-08-01 Allmän tillgänglighet Alla
  • Tog bort det förberedda understrecket från resursnamnen för virtuella IaaS-datorer
  • Krav för metadatahuvud som tillämpas för alla begäranden
  • 2017-03-01 Förhandsgranskning Alla
  • Första utgåvan
  • Anteckning

    Tidigare förhandsversioner av Schemalagda händelser {latest} som API-version. Det här formatet stöds inte längre och kommer att bli inaktuellt i framtiden.

    Aktivera och inaktivera Schemalagda händelser

    Schemalagda händelser aktiveras för din tjänst första gången du gör en begäran om händelser. Du bör förvänta dig ett fördröjd svar i ditt första anrop på upp till två minuter.

    Schemalagda händelser inaktiveras för din tjänst om den inte gör en begäran på 24 timmar.

    Användarinitierad underhåll

    Användarinitierat vm-underhåll via Azure Portal, API, CLI eller PowerShell resulterar i en schemalagd händelse. Sedan kan du testa logiken för underhållsförberedelse i programmet och programmet kan förberedas för användarinitierade underhåll.

    Om du startar om en virtuell dator schemaläggs en händelse Reboot med typen . Om du distribuerar om en virtuell dator schemaläggs en händelse Redeploy med typen .

    Använda API:et

    Sidhuvuden

    När du Metadata Service måste du ange -huvudet för att säkerställa att begäran inte Metadata:true oavsiktligt omdirigerades. -huvudet Metadata:true krävs för alla begäranden om schemalagda händelser. Om huvudet inte inkluderas i begäran resulterar det i ett "Felaktig begäran"-svar från Metadata Service.

    Fråga efter händelser

    Du kan fråga efter schemalagda händelser genom att göra följande anrop:

    Bash

    curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2020-07-01
    

    Ett svar innehåller en matris med schemalagda händelser. En tom matris innebär att inga händelser schemaläggs för närvarande. Om det finns schemalagda händelser innehåller svaret en matris med händelser.

    {
        "DocumentIncarnation": {IncarnationID},
        "Events": [
            {
                "EventId": {eventID},
                "EventType": "Reboot" | "Redeploy" | "Freeze" | "Preempt" | "Terminate",
                "ResourceType": "VirtualMachine",
                "Resources": [{resourceName}],
                "EventStatus": "Scheduled" | "Started",
                "NotBefore": {timeInUTC},       
                "Description": {eventDescription},
                "EventSource" : "Platform" | "User",
                "DurationInSeconds" : {timeInSeconds},
            }
        ]
    }
    

    Händelseegenskaper

    Egenskap Beskrivning
    EventId Globalt unik identifierare för den här händelsen.

    Exempel:
    • 602d9444-d2cd-49c7-8624-8643e7171297
    Eventtype Det påverkar den här händelsen.

    Värden:
    • Freeze: Den virtuella datorn är schemalagd att pausa i några sekunder. CPU- och nätverksanslutningen kan pausas, men det påverkar inte minnet eller öppna filer.
    • Reboot: Den virtuella datorn är schemalagd för omstart (icke-beständigt minne går förlorat).
    • Redeploy: Den virtuella datorn är schemalagd att flyttas till en annan nod (tillfälliga diskar går förlorade).
    • Preempt: Den virtuella spotdatorn tas bort (tillfälliga diskar går förlorade).
    • Terminate: Den virtuella datorn är schemalagd att tas bort.
    ResourceType Typ av resurs som den här händelsen påverkar.

    Värden:
    • VirtualMachine
    Resurser Lista över resurser som den här händelsen påverkar. Listan innehåller garanterat datorer från högst en uppdateringsdomän,men den innehåller kanske inte alla datorer i UD.

    Exempel:
    • ["FrontEnd_IN_0", "BackEnd_IN_0"]
    EventStatus Status för den här händelsen.

    Värden:
    • Scheduled: Den här händelsen är schemalagd att starta efter den tid som anges i NotBefore egenskapen .
    • Started: Den här händelsen har startat.
    Ingen Completed eller liknande status har någonsin angetts. Händelsen returneras inte längre när händelsen är klar.
    NotBefore Tid efter vilken den här händelsen kan starta.

    Exempel:
    • Mån, 19 sep 2016 18:29:47 GMT
    Beskrivning Beskrivning av den här händelsen.

    Exempel:
    • Värdservern genomgår underhåll.
    EventSource Initierare av händelsen.

    Exempel:
    • Platform: Den här händelsen initieras av plattformen.
    • User: Den här händelsen initieras av användaren.
    DurationInSeconds Den förväntade varaktigheten för avbrottet som orsakats av händelsen.

    Exempel:
    • 9: Avbrottet som orsakas av händelsen varar i 9 sekunder.
    • -1: Standardvärdet som används om påverkansvaraktigheten är okänd eller inte tillämplig.

    Schemaläggning av händelser

    Varje händelse schemaläggs en minsta tid i framtiden baserat på händelsetypen. Den här gången återspeglas i en NotBefore händelseegenskap.

    Eventtype Minsta meddelande
    Frysa 15 minuter
    Starta om 15 minuter
    Omdistribuera 10 minuter
    Föregripa 30 sekunder
    Terminate Användaren kan konfigureras:5 till 15 minuter

    Anteckning

    I vissa fall kan Azure förutsäga värdfel på grund av försämrad maskinvara och försöker minimera avbrott i tjänsten genom att schemalägga en migrering. Berörda virtuella datorer får en schemalagd händelse med NotBefore en som vanligtvis är några dagar i framtiden. Den faktiska tiden varierar beroende på riskbedömningen av det förväntade felet. Azure försöker lämna 7 dagar i förväg när det är möjligt, men den faktiska tiden varierar och kan vara mindre om förutsägelsen är att det finns en hög risk för att maskinvaran inte fungerar som den ska. För att minimera risken för din tjänst om maskinvaran slutar fungera innan den systeminitierade migreringen rekommenderar vi att du själv distribuerar om den virtuella datorn så snart som möjligt.

    Avsökningsfrekvens

    Du kan avse slutpunkten efter uppdateringar så ofta eller sällan som du vill. Ju längre tiden mellan begärandena är, desto längre tid kan du förlora för att reagera på en kommande händelse. De flesta händelser har 5 till 15 minuters förvarning, även om det i vissa fall kan vara så lite som 30 sekunder. För att säkerställa att du har så mycket tid som möjligt att vidta åtgärder rekommenderar vi att du avsöker tjänsten en gång per sekund.

    Starta en händelse

    När du har lärt dig om en kommande händelse och har avslutat logiken för en bra avstängning kan du godkänna den utestående händelsen genom att göra ett anrop POST till Metadata Service med EventId . Det här anropet anger till Azure att det kan förkorta den minsta meddelandetiden (när det är möjligt).

    Följande JSON-exempel förväntas i POST begärandetexten. Begäran ska innehålla en lista med StartRequests . Varje StartRequest innehåller för den händelse som du vill EventId påskynda:

    {
    	"StartRequests" : [
    		{
    			"EventId": {EventId}
    		}
    	]
    }
    

    Bash-exempel

    curl -H Metadata:true -X POST -d '{"StartRequests": [{"EventId": "f020ba2e-3bc0-4c40-a10b-86575a9eabd5"}]}' http://169.254.169.254/metadata/scheduledevents?api-version=2020-07-01
    

    Anteckning

    Genom att bekräfta en händelse kan händelsen fortsätta för alla Resources händelser, inte bara den virtuella dator som bekräftar händelsen. Därför kan du välja att välja en ledare för att samordna bekräftelsen, vilket kan vara lika enkelt som den första datorn i Resources fältet.

    Python-exempel

    Följande exempel frågar efter Metadata Service schemalagda händelser och godkänner varje utestående händelse:

    #!/usr/bin/python
    
    import json
    import socket
    import urllib2
    
    metadata_url = "http://169.254.169.254/metadata/scheduledevents?api-version=2020-07-01"
    this_host = socket.gethostname()
    
    
    def get_scheduled_events():
        req = urllib2.Request(metadata_url)
        req.add_header('Metadata', 'true')
        resp = urllib2.urlopen(req)
        data = json.loads(resp.read())
        return data
    
    
    def handle_scheduled_events(data):
        for evt in data['Events']:
            eventid = evt['EventId']
            status = evt['EventStatus']
            resources = evt['Resources']
            eventtype = evt['EventType']
            resourcetype = evt['ResourceType']
            notbefore = evt['NotBefore'].replace(" ", "_")
    	description = evt['Description']
    	eventSource = evt['EventSource']
            if this_host in resources:
                print("+ Scheduled Event. This host " + this_host +
                    " is scheduled for " + eventtype + 
    		" by " + eventSource + 
    		" with description " + description +
    		" not before " + notbefore)
                # Add logic for handling events here
    
    
    def main():
        data = get_scheduled_events()
        handle_scheduled_events(data)
    
    
    if __name__ == '__main__':
        main()
    

    Nästa steg

    Gäller för: ✔️ Windows virtuella datorer ✔️ flexibla skalningsuppsättningar ✔️ Uniform Scale Sets

    Schemalagda händelser är en Azure Metadata Service som ger ditt program tid att förbereda för underhåll av virtuella datorer. Den innehåller information om kommande underhållshändelser (till exempel omstart) så att ditt program kan förbereda sig för dem och begränsa avbrott. Den är tillgänglig för alla Typer av Azure Virtual Machines, inklusive PaaS och IaaS på både Windows och Linux.

    Information om hur Schemalagda händelser Linux finns i Schemalagda händelser för virtuella Linux-datorer.

    Anteckning

    Schemalagda händelser är allmänt tillgänglig i alla Azure-regioner. Se Versions- och regionstillgänglighet för den senaste versionsinformationen.

    Varför använda Schemalagda händelser?

    Många program kan dra nytta av det då och då för att förbereda för underhåll av virtuella datorer. Tiden kan användas för att utföra programspecifika uppgifter som förbättrar tillgänglighet, tillförlitlighet och service, inklusive:

    • Kontrollpunkt och återställning.
    • Anslutningstömning.
    • Redundans för primär replik.
    • Borttagning från en lastbalanseringspool.
    • Händelseloggning.
    • En bra avstängning.

    Med Schemalagda händelser kan programmet identifiera när underhåll sker och utlösa aktiviteter för att begränsa dess påverkan.

    Schemalagda händelser händelser i följande användningsfall:

    • Plattformsinitierad underhåll (till exempel omstart av virtuell dator, direktmigrering eller minnesbevarande uppdateringar för värden)
    • Den virtuella datorn körs på degraderad värdmaskinvara som förväntas misslyckas snart
    • Användarinitierat underhåll (till exempel om en användare startar om eller distribuerar om en virtuell dator)
    • Avlägsningar av vm-instanser för VM med vm med spotskalning.

    Grunderna

    Metadata Service tillgänglig information om att köra virtuella datorer med hjälp av en REST-slutpunkt som är tillgänglig från den virtuella datorn. Informationen är tillgänglig via en icke-adresserbar IP-adress så att den inte exponeras utanför den virtuella datorn.

    Omfång

    Schemalagda händelser levereras till:

    • Fristående Virtual Machines.
    • Alla virtuella datorer i en molntjänst.
    • Alla virtuella datorer i en tillgänglighetsuppsättning.
    • Alla virtuella datorer i en tillgänglighetszon.
    • Alla virtuella datorer i en skalningsuppsättningsplaceringsgrupp.

    Anteckning

    Schemalagda händelser för alla virtuella datorer (VM) i en FC-klient (Infrastrukturkontrollant) levereras till alla virtuella datorer i en FC-klientorganisation. FC-klientorganisationen motsvarar en fristående virtuell dator, en hel molntjänst, en hel tillgänglighetsuppsättning och en placeringsgrupp för en VM-skalningsuppsättning (VMSS) oavsett användning av tillgänglighetszoner.

    Därför kontrollerar du fältet i Resources händelsen för att identifiera vilka virtuella datorer som påverkas.

    Slutpunktsidentifiering

    För VNET-aktiverade virtuella datorer Metadata Service tillgänglig från en statisk icke-routerbar IP-adress, 169.254.169.254 . Den fullständiga slutpunkten för den senaste versionen Schemalagda händelser är:

    http://169.254.169.254/metadata/scheduledevents?api-version=2020-07-01

    Om den virtuella datorn inte skapas i en Virtual Network, standardfallen för molntjänster och klassiska virtuella datorer, krävs ytterligare logik för att identifiera ip-adressen som ska användas. Information om hur du identifierar värdslutpunkten finns idet här exemplet.

    Tillgänglighet för version och region

    Tjänsten Schemalagda händelser versionshantering. Versioner är obligatoriska. den aktuella versionen är 2020-07-01 .