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

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

Med Azure Spot Virtual Machines kan du dra nytta av vår outnyttjade kapacitet till betydande kostnadsbesparingar. När som helst 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 är variabel, baserat på region och SKU. Mer information finns i Priser för virtuella datorer för Linux och Windows.

Du har möjlighet att ange ett högsta pris som du är villig att betala per timme för den virtuella datorn. Maxpriset för en virtuell Azure Spot-dator kan anges i US-dollar (USD), med upp till 5 decimaler. Värdet 0.98765 är till exempel ett maxpris på 0,98765 USD per timme. Om du anger maxpriset till -1tas den virtuella datorn bort baserat på pris. Priset för den virtuella datorn är det aktuella priset för virtuell Azure-dator för oanvänd kapacitet eller priset för en vanlig virtuell dator, vilket någonsin är lägre, så länge det finns kapacitet och kvot tillgänglig. Mer information om hur du anger maxpriset finns i Azure Spot Virtual Machines – Prissättning.

Processen för att skapa en virtuell Azure Spot-dator med Azure CLI är densamma som beskrivs i snabbstartsartikeln. Lägg bara till parametern "--priority Spot", ange --eviction-policy till antingen Deallocate (standard) eller Deleteoch ange ett maxpris eller -1.

Installera Azure CLI

Om du vill skapa Azure Spot Virtual Machines 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-dator för oanvänd kapacitet

Det här exemplet visar hur du distribuerar en virtuell Linux Azure Spot-dator som inte tas bort baserat på pris. Borttagningsprincipen är inställd på att frigöra 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 tas bort anger du --eviction-policy till Delete.

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image Ubuntu2204 \
    --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 maximala 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 borttagning av en virtuell Azure Spot-dator med hjälp av REST, PowerShell eller CLI för att testa hur väl programmet svarar på en plötslig borttagning.

I de flesta fall vill du använda REST API-Virtual Machines – Simulera borttagning för att hjälpa till med automatiserad testning av program. För REST innebär det Response Code: 204 att den simulerade borttagningen lyckades. Du kan kombinera simulerade borttagningar med tjänsten Schemalagd händelse för att automatisera hur appen svarar när den virtuella datorn tas bort.

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

Kort guide

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

Tjänsten Schemalagd händelse är aktiverad för din tjänst första gången du begär 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 som har Azure CLI installerat (till exempel din lokala dator) simulerar du en borttagning med az vm simulate-eviction. Ersätt resursgruppens namn och VM-namn 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 oanvänd kapacitet och fråga slutpunkten Schemalagda händelser 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 den schemalagda händelsetjänsten får aviseringsmeddelandet får du ett svar som liknar följande utdata:

{"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 det "EventType":"Preempt"och resursen är vm-resursen "Resources":["myspotvm"].

Du kan också se den virtuella datorns borttagningsvillkor genom att kontrollera "NotBefore" – den virtuella datorn tas inte bort före den angivna tiden, så det är ditt fönster där ditt program kan stängas på ett smidigt sätt.

Nästa steg

Du kan också skapa en virtuell Azure Spot-dator med hjälp av Azure PowerShell, portalen eller en mall.

Fråga aktuell prisinformation med hjälp av API:et för azure-detaljhandelspriser om du vill ha information om den virtuella Azure-datorn för oanvänd kapacitet. Och meterNameskuName båda innehåller Spot.

Om du stöter på ett fel läser du Felkoder.