{"slug":"azure-cloud-migrate","title":"azure-cloud-migrate","summary":"Assess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk/Heroku/App Engine→App Service, Fargate/Kubernetes/Cloud Run/Spring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, mig","platform":"GitHub Copilot","tags":[],"authorName":"Ciza","authorSlug":"ciza","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-08-12T21:05:00.647355Z","repo":{"url":"https://github.com/microsoft/skills","stars":3052,"forks":351,"license":"MIT","updatedAt":"2026-09-24T16:38:17Z"},"bodyHtml":"<hr>\n<h2>name: azure-cloud-migrate\ndescription: \"Assess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk/Heroku/App Engine→App Service, Fargate/Kubernetes/Cloud Run/Spring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, migrate Heroku, migrate App Engine, Cloud Run migration, Fargate to ACA, ECS/Kubernetes/GKE/EKS to Container Apps, Spring Boot to Container Apps, cross-cloud migration.\"\nlicense: MIT\nmetadata:\nauthor: Microsoft\nversion: \"1.3.1\"</h2>\n<h1>Azure Cloud Migrate</h1>\n<blockquote>\n<p>This skill handles <strong>assessment and code migration</strong> of existing cloud workloads to Azure.</p>\n</blockquote>\n<h2>Rules</h2>\n<ol>\n<li>Follow phases sequentially — do not skip</li>\n<li>Generate assessment before any code migration</li>\n<li>Load the scenario reference and follow its rules</li>\n<li>Use <code>mcp_azure_mcp_get_azure_bestpractices</code> and <code>mcp_azure_mcp_documentation</code> MCP tools</li>\n<li>Use the latest supported runtime for the target service</li>\n<li>Destructive actions require <code>ask_user</code> — <a href=\"references/services/functions/global-rules.md\">functions global-rules</a> | <a href=\"references/services/app-service/global-rules.md\">app-service global-rules</a></li>\n<li><strong>Report progress to user</strong> — During long-running operations (deployments, image pushes), provide resource-level status updates so the user is never left waiting without feedback — see <a href=\"references/workflow-details.md\">workflow-details.md</a></li>\n<li><strong>Audit service discovery in app code</strong> — Kubernetes DNS names (e.g., <code>http://order-service:3001</code>) do not resolve in Container Apps. During assessment, scan source code for hardcoded hostnames/ports in HTTP clients and flag them for env-var-driven URL injection</li>\n</ol>\n<h2>Migration Scenarios</h2>\n<table>\n<thead>\n<tr>\n<th>Source</th>\n<th>Target</th>\n<th>Reference</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>AWS Lambda</td>\n<td>Azure Functions</td>\n<td><a href=\"references/services/functions/lambda-to-functions.md\">lambda-to-functions.md</a> (<a href=\"references/services/functions/assessment.md\">assessment</a>, <a href=\"references/services/functions/code-migration.md\">code-migration</a>)</td>\n</tr>\n<tr>\n<td>AWS Elastic Beanstalk</td>\n<td>Azure App Service</td>\n<td><a href=\"references/services/app-service/beanstalk-to-app-service.md\">beanstalk-to-app-service.md</a></td>\n</tr>\n<tr>\n<td>Heroku</td>\n<td>Azure App Service</td>\n<td><a href=\"references/services/app-service/heroku-to-app-service.md\">heroku-to-app-service.md</a></td>\n</tr>\n<tr>\n<td>Google App Engine</td>\n<td>Azure App Service</td>\n<td><a href=\"references/services/app-service/app-engine-to-app-service.md\">app-engine-to-app-service.md</a></td>\n</tr>\n<tr>\n<td>AWS Fargate (ECS)</td>\n<td>Azure Container Apps</td>\n<td><a href=\"references/services/container-apps/fargate-to-container-apps.md\">fargate-to-container-apps.md</a> (<a href=\"references/services/container-apps/fargate-assessment-guide.md\">assessment</a>, <a href=\"references/services/container-apps/fargate-deployment-guide.md\">deployment</a>)</td>\n</tr>\n<tr>\n<td>Kubernetes (GKE/EKS/Self-hosted)</td>\n<td>Azure Container Apps</td>\n<td><a href=\"references/services/container-apps/k8s-to-container-apps.md\">k8s-to-container-apps.md</a></td>\n</tr>\n<tr>\n<td>GCP Cloud Run</td>\n<td>Azure Container Apps</td>\n<td><a href=\"references/services/container-apps/cloudrun-to-container-apps.md\">cloudrun-to-container-apps.md</a></td>\n</tr>\n<tr>\n<td>Spring Boot (Azure Spring Apps/VMs)</td>\n<td>Azure Container Apps</td>\n<td><a href=\"references/services/container-apps/spring-apps-to-aca.md\">spring-apps-to-aca.md</a></td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>No matching scenario? Use <code>mcp_azure_mcp_documentation</code> and <code>mcp_azure_mcp_get_azure_bestpractices</code> tools.</p>\n</blockquote>\n<h2>Output Directory</h2>\n<p>All output goes to <code>&lt;workspace-root-basename&gt;-azure/</code> at workspace root, where <code>&lt;workspace-root-basename&gt;</code> is the name of the top-level workspace directory itself (NOT a subdirectory within it). Never modify the source directory.</p>\n<h2>Steps</h2>\n<ol>\n<li><strong>Create</strong> <code>&lt;workspace-root-basename&gt;-azure/</code> at workspace root</li>\n<li><strong>Assess</strong> — Analyze source, map services, generate report using the scenario-specific assessment guide → <a href=\"references/services/functions/assessment.md\">functions assessment</a> | <a href=\"references/services/app-service/assessment.md\">app-service assessment</a></li>\n<li><strong>Migrate</strong> — Convert code/config using the scenario-specific migration guide → <a href=\"references/services/functions/code-migration.md\">functions code-migration</a> | <a href=\"references/services/app-service/code-migration.md\">app-service code-migration</a></li>\n<li><strong>Ask User</strong> — \"Migration complete. Test locally or deploy to Azure?\"</li>\n<li><strong>Hand off</strong> to azure-prepare for infrastructure, testing, and deployment</li>\n</ol>\n<p>Track progress in <code>migration-status.md</code> — see <a href=\"references/workflow-details.md\">workflow-details.md</a>.</p>\n","files":[{"path":"references/services/app-service/app-engine-to-app-service.md","sizeBytes":7302,"isText":true},{"path":"references/services/app-service/assessment.md","sizeBytes":5342,"isText":true},{"path":"references/services/app-service/beanstalk-to-app-service.md","sizeBytes":6508,"isText":true},{"path":"references/services/app-service/code-migration.md","sizeBytes":5069,"isText":true},{"path":"references/services/app-service/global-rules.md","sizeBytes":2911,"isText":true},{"path":"references/services/app-service/heroku-to-app-service.md","sizeBytes":7728,"isText":true},{"path":"references/services/container-apps/assessment-guide.md","sizeBytes":7164,"isText":true},{"path":"references/services/container-apps/cloudrun-assessment-guide.md","sizeBytes":2554,"isText":true},{"path":"references/services/container-apps/cloudrun-deployment-guide.md","sizeBytes":8117,"isText":true},{"path":"references/services/container-apps/cloudrun-to-container-apps.md","sizeBytes":2233,"isText":true},{"path":"references/services/container-apps/deployment-guide.md","sizeBytes":9859,"isText":true},{"path":"references/services/container-apps/fargate-assessment-guide.md","sizeBytes":2456,"isText":true},{"path":"references/services/container-apps/fargate-deployment-guide.md","sizeBytes":10351,"isText":true},{"path":"references/services/container-apps/fargate-to-container-apps.md","sizeBytes":4052,"isText":true},{"path":"references/services/container-apps/k8s-to-container-apps.md","sizeBytes":4987,"isText":true},{"path":"references/services/container-apps/spring-apps-to-aca.md","sizeBytes":3858,"isText":true},{"path":"references/services/container-apps/spring-assessment-guide.md","sizeBytes":5372,"isText":true},{"path":"references/services/container-apps/spring-dependency-patterns.md","sizeBytes":1180,"isText":true},{"path":"references/services/container-apps/spring-deployment-guide.md","sizeBytes":15483,"isText":true},{"path":"references/services/functions/assessment.md","sizeBytes":6454,"isText":true},{"path":"references/services/functions/code-migration.md","sizeBytes":6121,"isText":true},{"path":"references/services/functions/global-rules.md","sizeBytes":3403,"isText":true},{"path":"references/services/functions/lambda-to-functions.md","sizeBytes":10489,"isText":true},{"path":"references/services/functions/runtimes/csharp.md","sizeBytes":5611,"isText":true},{"path":"references/services/functions/runtimes/java.md","sizeBytes":6554,"isText":true},{"path":"references/services/functions/runtimes/javascript.md","sizeBytes":8740,"isText":true},{"path":"references/services/functions/runtimes/powershell.md","sizeBytes":5112,"isText":true},{"path":"references/services/functions/runtimes/python.md","sizeBytes":6530,"isText":true},{"path":"references/services/functions/runtimes/typescript.md","sizeBytes":3592,"isText":true},{"path":"references/workflow-details.md","sizeBytes":2388,"isText":true},{"path":"SKILL.md","sizeBytes":4355,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"notes-only","suspicious":0,"notes":1,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-08-20T06:29:31.444448Z","sha256":"A5B47833CF6CE79AD2CDC476ECC9690210753B6E032828BAA6BB6A214077DA77","sizeBytes":69682},"review":null,"source":{"repositoryUrl":"https://github.com/microsoft/skills","path":".github/plugins/azure-skills/skills/azure-cloud-migrate","license":"MIT","commit":"23d0dac5f83f268166a17f0bc7dc6c73dc348a33","subtreeSha":"ED382FDE8D99644EF3FC611EF77C7D6CFA900488A4E66C037364E8BD44B9D058","lastSyncedAt":"2026-09-25T06:48:53.330584Z"},"reviewedAt":"2026-08-20T06:29:38.904639Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/microsoft/skills/tree/main/.github/plugins/azure-skills/skills/azure-cloud-migrate"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install microsoft-skills@llmmart"},{"target":"git","command":"git clone https://github.com/microsoft/skills.git"}]}