
Handles Azure service tier upgrades and plan migrations without leaving the cloud. You point it at a Functions app on Consumption and it'll assess, migrate settings, and stand up Flex Consumption. Also does App Service to Container Apps moves and modernizes legacy Azure Java SDKs from the old com.microsoft.azure namespace to com.azure. The Redis migration piece routes to dedicated AMR tooling for both standard and Enterprise tiers. It's careful about destructive actions and tracks progress in markdown, which is reassuring when you're touching production infrastructure. If you're stuck manually clicking through Azure portal upgrades or running half-documented migration scripts, this automates the assessment and execution steps into a repeatable flow.
$ npx -y skills add microsoft/github-copilot-for-azure --skill azure-upgrade --agent claude-codeInstalls into .claude/skills of the current project.
This skill handles assessment and automated upgrades of existing Azure workloads from one Azure service, hosting plan, or SKU to another — all within Azure. This includes plan/tier upgrades (e.g. Consumption → Flex Consumption), cross-service migrations (e.g. App Service → Container Apps), and SKU changes. It also covers Azure SDK for Java source-code modernization (e.g. legacy Java
com.microsoft.azure.*→ moderncom.azure.*). This is NOT for cross-cloud migration — useazure-cloud-migratefor that.
| User Intent | Example Prompts |
|---|---|
| Upgrade Azure Functions plan | "Upgrade my function app from Consumption to Flex Consumption" |
| Discover Functions upgrade candidates | "What Consumption Function Apps do I have that can be upgraded to Flex Consumption?" |
| Change hosting tier | "Move my function app to a better plan" |
| Assess upgrade readiness | "Is my function app ready for Flex Consumption?" |
| Automate plan migration | "Automate the steps to upgrade my Functions plan" |
| Modernize legacy Azure Java SDK | "Migrate legacy Azure SDKs for Java", "Upgrade legacy Azure Java SDK", "Migrate my Java project from com.microsoft.azure to com.azure" |
| Migrate Azure Cache for Redis (ACR/OSS) to Azure Managed Redis (AMR) | "Migrate my Redis cache to AMR", "ACR to AMR", "OSS to AMR", "Upgrade my Premium P2 cache to Managed Redis", "Pick an AMR SKU", "Convert my Redis IaC template to AMR" |
| Migrate Azure Cache for Redis Enterprise (ACRE) to Azure Managed Redis (AMR) | "Migrate my Enterprise_E10 cache to AMR", "ACRE to AMR", "Update my ACRE IaC template for AMR", "Migrate EnterpriseFlash to AMR", "Migrate my geo-replicated Enterprise Redis" |
mcp_azure_mcp_get_azure_bestpractices and mcp_azure_mcp_documentation MCP toolsask_user — global-rules<source>-<target-suffix>, e.g. <source>-flex for Flex Consumption migrations) and announce the proposed name to the user before creating it so they can override without a blocking prompt. Same pattern applies to other newly-created resources (storage accounts, App Insights, etc.) — see the scenario reference for service-specific defaults.ask_user to describe the exact change and obtain explicit approval. Approval is action-specific and cannot be reused for later source changes.ask_user in the same turn — never stop after merely announcing the next step and wait for the user to re-engage.| Source | Target | Reference |
|---|---|---|
| Azure Functions Consumption Plan (Linux) | Azure Functions Flex Consumption Plan | workflow.md |
| Azure Functions Consumption Plan (Windows) | Azure Functions Flex Consumption Plan | workflow.md |
Legacy Azure Java SDK (com.microsoft.azure.*) | Modern Azure Java SDK (com.azure.*) | languages/java/README.md |
| Azure Cache for Redis (ACR/OSS) Basic/Standard/Premium | Azure Managed Redis (AMR) | services/redis/redis-to-amr.md |
| Azure Cache for Redis Enterprise (ACRE) / Enterprise Flash | Azure Managed Redis (AMR) | services/redis/redis-to-amr.md |
Functions Consumption-to-Flex routing: For a named app, inspect its Azure platform and load only the matching Linux or Windows workflow. For subscription-wide discovery, evaluate both platforms: use
az functionapp flex-migration listfor Linux and the Windows workflow's manual discovery and compatibility checks for Windows. Label Windows results as candidates until per-app code compatibility is assessed.
SDK upgrade scenarios (e.g. Java legacy → modern) run a source-code modernization flow that is distinct from Azure service/plan/SKU upgrades: follow the scenario reference, not the Steps below.
No matching scenario? Use
mcp_azure_mcp_documentationandmcp_azure_mcp_get_azure_bestpracticestools to research the upgrade path.
| Tool | Purpose |
|---|---|
mcp_azure_mcp_get_azure_bestpractices | Get Azure best practices for the target service |
mcp_azure_mcp_documentation | Look up Azure documentation for upgrade scenarios |
mcp_azure_mcp_appservice | Query App Service and Functions plan details |
mcp_azure_mcp_applicationinsights | Verify monitoring configuration |
azure-validate for deep validation or azure-deploy for CI/CD setupTrack progress in <UPGRADE_DIR>/upgrade-status.md — see Artifact Output Policy for path resolution.
After upgrade is validated, hand off to:
azure-validate — for thorough post-upgrade validationazure-deploy — if the user wants to set up CI/CD for the new appSponsors