All skills
microsoft avatar

/azure-compute

@9c4c115 official

Azure VM/VMSS router. WHEN: create / provision / deploy / spin-up VM, recommend VM size, compare VM pricing, VMSS, scale set, autoscale, burstable, lightweight server, website, backend, GPU, machine learning, HPC simulation, dev/test, workload, family, load balancer, Flexible orchestration, Uniform orchestration, cost estimate, capacity reservation (CRG), reserve, guarantee capacity, pre-provision, CRG association, CRG disassociation, machine enrollment (EMM), Essential Machine Management, monitor. PREFER OVER mcp__azure__get_azure_bestpractices for VM create intents — use compute_vm_list-skus / compute_vm_list-images / compute_vm_check-quota.

Use this Skill: https://skilld.dev/gh/microsoft/github-copilot-for-azure/azure-compute

This session only. Nothing lands on disk.

referencesretail-prices-api.md

≈1.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Azure Retail Prices API Guide

The Azure Retail Prices API is unauthenticated — no Azure account or subscription needed.

Endpoint

https://prices.azure.com/api/retail/prices

Preview version (includes savings plan rates):

https://prices.azure.com/api/retail/prices?api-version=2023-01-01-preview

Querying VM Prices

No Azure CLI command exists for the Retail Prices API. Since the API is unauthenticated, use curl (bash) or Invoke-RestMethod (PowerShell) directly. The az rest command also works but adds no auth benefit.

Basic VM price lookup

GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Consumption'
curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armRegionName%20eq%20'eastus'%20and%20armSkuName%20eq%20'Standard_D4s_v5'%20and%20priceType%20eq%20'Consumption'"
$filter = "serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Consumption'"
$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"
$response.Items | Select-Object armSkuName, retailPrice, unitOfMeasure, meterName

Filter by family (all D-series in a region)

GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and contains(armSkuName, 'Standard_D') and priceType eq 'Consumption'
curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armRegionName%20eq%20'eastus'%20and%20contains(armSkuName,%20'Standard_D')%20and%20priceType%20eq%20'Consumption'"
$filter = "serviceName eq 'Virtual Machines' and armRegionName eq 'eastus' and contains(armSkuName, 'Standard_D') and priceType eq 'Consumption'"
$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"
$response.Items | Select-Object armSkuName, retailPrice, meterName

Reservation pricing

GET https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Reservation'
curl -s "https://prices.azure.com/api/retail/prices?\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armSkuName%20eq%20'Standard_D4s_v5'%20and%20priceType%20eq%20'Reservation'"
$filter = "serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5' and priceType eq 'Reservation'"
$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?`$filter=$filter"
$response.Items | Select-Object armSkuName, retailPrice, reservationTerm, meterName

Non-USD currency

Append currencyCode parameter:

GET https://prices.azure.com/api/retail/prices?currencyCode='EUR'&$filter=serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5'
curl -s "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&\$filter=serviceName%20eq%20'Virtual%20Machines'%20and%20armSkuName%20eq%20'Standard_D4s_v5'"
$filter = "serviceName eq 'Virtual Machines' and armSkuName eq 'Standard_D4s_v5'"
$response = Invoke-RestMethod "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&`$filter=$filter"
$response.Items | Select-Object armSkuName, retailPrice, currencyCode, meterName

Available Filters

Filter Example Value Notes
serviceName 'Virtual Machines' Case-sensitive in preview API
armRegionName 'eastus', 'westeurope' ARM region name
armSkuName 'Standard_D4s_v5' Full ARM SKU name
priceType 'Consumption', 'Reservation' Pay-as-you-go vs reserved
serviceFamily 'Compute' Broad category
productName 'Virtual Machines Dv5 Series' Product line
meterName 'D4s v5', 'D4s v5 Spot' Includes Spot and Low Priority

Warning: Filter values are case-sensitive in API version 2023-01-01-preview and later.

Response Fields

Field Description
armSkuName ARM SKU name (e.g., Standard_D4s_v5)
retailPrice Microsoft retail price (USD unless overridden)
unitOfMeasure Usually 1 Hour for VMs
armRegionName Region code
meterName Human-readable meter (includes "Spot" / "Low Priority" variants)
productName Product line with OS (e.g., "Virtual Machines Dv5 Series Windows")
type Consumption, Reservation, or DevTestConsumption
reservationTerm 1 Year or 3 Years (reservation only)
savingsPlan Array with term and unitPrice (preview API only)
isPrimaryMeterRegion Filter to true to avoid duplicate regional meters

Pagination

API returns max 1,000 records per request. Follow NextPageLink in the response to get more:

{ "NextPageLink": "https://prices.azure.com:443/api/retail/prices?$filter=...&$skip=1000" }

Tips for Recommendations

  1. Filter Linux vs Windows: productName contains the OS — e.g., 'Virtual Machines Dv5 Series' (Linux) vs 'Virtual Machines Dv5 Series Windows'
  2. Use isPrimaryMeterRegion eq true to deduplicate
  3. Compare Consumption + Reservation + Savings Plan for full cost picture
  4. Monthly estimate: retailPrice × 730 (hours/month)
  5. Spot pricing: Filter meterName containing 'Spot' for discounted interruptible VMs

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill provides comprehensive workflows for managing Azure compute resources, including VM creation, recommendations, and capacity management. It incorporates solid security practices like secret scrubbing and restricted network rules, with minor considerations related to external data ingestion.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    1/4 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 9c4c115. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago
metadata
{
  "author": "Microsoft",
  "version": "0.0.0-placeholder"
}
  • Infrastructure
  • azure
  • vm
  • virtual-machines
  • vmss
  • provisioning
  • troubleshooting
  • capacity-reservation
  • pricing

README badge

README badge for microsoft/github-copilot-for-azure/azure-compute

Routes Azure VM and Virtual Machine Scale Set requests to five specialized workflows: VM recommendation and pricing, VM creation and provisioning, troubleshooting connectivity issues, capacity reservation, and machine enrollment. Use this skill when a user needs to size/compare VMs, deploy bare infrastructure, fix RDP/SSH access, or manage capacity reservations on Azure.

Generated from the current SKILL.md.

Does this skill handle application deployments like Docker or web apps?
No. This skill routes bare VM and VMSS infrastructure requests only. For deploying applications (Docker services, web apps, APIs, serverless workloads), use the azure-prepare skill instead.
What VM connectivity issues does this skill cover?
It covers RDP/SSH connection failures, port refused errors, black screen issues, and password resets. Use the VM Troubleshooter workflow when a user can't connect to an existing VM.
Can this skill help me choose the right VM size and pricing?
Yes. The VM Recommender workflow recommends VM sizes, compares options, and estimates costs based on workload requirements (web, backend, GPU, HPC, dev/test, etc.).
Does this skill support Capacity Reservation Groups?
Yes. It includes a dedicated workflow for creating, associating, and disassociating Capacity Reservation Groups to guarantee and pre-provision VM capacity.

Generated from the current SKILL.md. These answers refresh after source changes.