Distribuera Azure Spot Virtual Machines med hjälp av Azure CLI

Gäller för: ✔️ Virtuella Linux-datorer ✔️ Flexibla skalningsuppsättningar

Med Azure Spot Virtual Machines kan du dra nytta av vår outnyttjade kapacitet med betydande kostnadsbesparingar. När Azure behöver tillbaka kapaciteten avlägsnar Azure-infrastrukturen Azure Spot Virtual Machines. Därför är Azure Spot Virtual Machines bra för arbetsbelastningar som kan hantera avbrott som batchbearbetningsjobb, utvecklings-/testmiljöer, stora beräkningsarbetsbelastningar med mera.

Prissättningen för Azure Spot Virtual Machines varierar beroende på region och SKU. Mer information finns i Prissättning för virtuella datorer för Linux och Windows.

Du har möjlighet att ange ett maxpris som du är villig att betala per timme för den virtuella datorn. Maxpriset för en virtuell Azure Spot-dator kan anges i amerikanska dollar (USD) med upp till 5 decimaler. Värdet skulle till exempel vara 0.98765 ett maxpris på 0,98765 USD per timme. Om du anger maxpriset till tas den virtuella -1 datorn inte bort baserat på priset. Priset för den virtuella datorn är det aktuella priset för den virtuella Azure-datorn för VM med spotläge eller priset för en standard-VM, som någonsin är mindre, så länge det finns tillgänglig kapacitet och kvot. Mer information om hur du anger maxpriset finns i Azure Spot Virtual Machines – Priser.

Processen för att skapa en virtuell Azure Spot-dator med Hjälp av Azure CLI är densamma som beskrivs i snabbstartsartikeln. Lägg bara till parametern "--priority Spot" (prioritetspunkt), ange till antingen --eviction-policy Deallocate (detta är standardinställningen) eller Delete och ange ett maxpris eller -1 .

Installera Azure CLI

Om du vill Virtual Machines Azure Spot måste du köra Azure CLI version 2.0.74 eller senare. Kör az --version om du vill se versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI.

Logga in på Azure med az login.

az login

Skapa en virtuell Azure Spot-dator

Det här exemplet visar hur du distribuerar en virtuell Linux Azure Spot-dator som inte tas bort baserat på priset. Avlägsningsprincipen är inställd på att frisöka den virtuella datorn så att den kan startas om vid ett senare tillfälle. Om du vill ta bort den virtuella datorn och den underliggande disken när den virtuella datorn avlägsnas anger du --eviction-policy till Delete .

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 \
    --eviction-policy Deallocate

När den virtuella datorn har skapats kan du fråga för att se det högsta faktureringspriset för alla virtuella datorer i resursgruppen.

az vm list \
   -g mySpotGroup \
   --query '[].{Name:name, MaxPrice:billingProfile.maxPrice}' \
   --output table

Simulera en avlägsning

Du kan simulera en avlägsning av en virtuell Azure Spot-dator med hjälp av REST, PowerShell eller CLI för att testa hur väl ditt program svarar på en plötslig avlägsning.

I de flesta fall bör du använda REST API Virtual Machines simulera avlägsning för att hjälpa till med automatiserad testning av program. För REST innebär det Response Code: 204 att den simulerade avlägsning lyckades. Du kan kombinera simulerade avlägsningar med tjänsten Schemalagd händelse föratt automatisera hur appen svarar när den virtuella datorn avlägsnas.

Om du vill se schemalagda händelser i praktiken kan du titta på Azure Friday – Använda Azure Schemalagda händelser för att förbereda för underhåll av virtuella datorer.

Kort guide

För ett snabbtest som visar hur en simulerad avlägsning fungerar ska vi gå igenom frågor till den schemalagda händelsetjänsten för att se hur det ser ut när du simulerar en avlägsning med hjälp av Azure CLI.

Tjänsten Schemalagd händelse aktiveras för din tjänst första gången du gör en begäran om händelser.

Fjärranslut till den virtuella datorn och öppna sedan en kommandotolk.

I kommandotolken på den virtuella datorn skriver du:

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

Det första svaret kan ta upp till 2 minuter. Från och med nu bör de visa utdata nästan omedelbart.

Från en dator där Azure CLI är installerat (t.ex. din lokala dator) simulerar du en avlägsning med az vm simulate-eviction. Ersätt resursgruppens namn och namnet på den virtuella datorn med ditt eget.

az vm simulate-eviction --resource-group mySpotRG --name mySpot

Svarsutdata har Status: Succeeded om begäran har gjorts.

Gå snabbt tillbaka till fjärranslutningen till den virtuella datorn för VM med spot-plats och fråga Schemalagda händelser slutpunkten igen. Upprepa följande kommando tills du får utdata som innehåller mer information:

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

När tjänsten Schemalagd händelse får avlägsning får du ett svar som ser ut ungefär så här:

{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}

Du kan se att "EventType":"Preempt" , och resursen är VM-resursen "Resources":["myspotvm"] .

Du kan också se när den virtuella datorn avlägsnas genom att kontrollera – den virtuella datorn tas inte bort innan den angivna tiden, så det är ditt fönster för att programmet ska stängas på ett smidigt "NotBefore" sätt.

Nästa steg

Du kan också skapa en virtuell Azure Spot-dator med Azure PowerShell, portaleller en mall.

Fråga aktuell prisinformation med hjälp av AZURE-API:et för detaljhandelspriser för information om virtuell Azure Spot-dator. och meterName skuName innehåller båda Spot .

Om du stöter på ett fel kan du se Felkoder.