AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Azure Cloud Migrate provides a structured, multi-phase workflow for transitioning applications from various cloud platforms to Azure. It focuses on assessing the current architecture, mapping services to Azure equivalents, and performing the necessary code and configuration conversions. The skill ensures a methodical approach by requiring an assessment report before any migration actions occur, and it provides specific guidance for common migration paths such as AWS Lambda to Azure Functions, Heroku to App Service, and Kubernetes to Container Apps.
What it does
- Generates comprehensive migration assessment reports for cross-cloud workloads.
- Maps source platform services, compute configurations, and dependencies to Azure equivalents.
- Provides guidance for converting application code and configuration files.
- Audits source code for platform-specific service discovery patterns.
- Creates architecture diagrams for both current and target states.
- Tracks migration progress and provides resource-level status updates.
When to use it
- When planning to migrate workloads from AWS Lambda, Elastic Beanstalk, or Fargate to Azure.
- When moving applications from Heroku or Google App Engine to Azure App Service.
- When transitioning Kubernetes or Cloud Run deployments to Azure Container Apps.
- When you need a structured assessment of migration readiness and effort.
Advantages
- Ensures a consistent, step-by-step migration process.
- Reduces risk by requiring a detailed assessment report before code changes.
- Provides clear mapping between source platform features and Azure services.
- Includes specific checks for common migration pitfalls like hardcoded service discovery.
Usage examples
- “Assess my current AWS Lambda project for migration to Azure Functions.”
- The agent will analyze the Lambda project, map the services to Azure Functions, and generate a migration assessment report in the output directory.
- “Migrate my Heroku application to Azure App Service.”
- The agent will perform an assessment, guide the conversion of configuration files, and assist in setting up the application for Azure App Service.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/microsoft/azure-cloud-migrate/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip azure-cloud-migrate.zip -d .agents/skills
Documentation by Microsoft
Azure Cloud Migrate
This skill handles assessment and code migration of existing cloud workloads to Azure.
Rules
Follow phases sequentially — do not skip
Generate assessment before any code migration
Load the scenario reference and follow its rules
Use
mcp_azure_mcp_get_azure_bestpracticesandmcp_azure_mcp_documentationMCP toolsUse the latest supported runtime for the target service
Destructive actions require
ask_user— functions global-rules | app-service global-rulesReport progress to user — During long-running operations (deployments, image pushes), provide resource-level status updates so the user is never left waiting without feedback — see workflow-details.md
Audit service discovery in app code — Kubernetes DNS names (e.g.,
http://order-service:3001) 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
Migration Scenarios
| Source | Target | Reference |
|---|---|---|
| AWS Lambda | Azure Functions | lambda-to-functions.md (assessment, code-migration) |
| AWS Elastic Beanstalk | Azure App Service | beanstalk-to-app-service.md |
| Heroku | Azure App Service | heroku-to-app-service.md |
| Google App Engine | Azure App Service | app-engine-to-app-service.md |
| AWS Fargate (ECS) | Azure Container Apps | fargate-to-container-apps.md (assessment, deployment) |
| Kubernetes (GKE/EKS/Self-hosted) | Azure Container Apps | k8s-to-container-apps.md |
| GCP Cloud Run | Azure Container Apps | cloudrun-to-container-apps.md |
| Spring Boot (Azure Spring Apps/VMs) | Azure Container Apps | spring-apps-to-aca.md |
No matching scenario? Use
mcp_azure_mcp_documentationandmcp_azure_mcp_get_azure_bestpracticestools.
Output Directory
All output goes to <workspace-root-basename>-azure/ at workspace root, where <workspace-root-basename> is the name of the top-level workspace directory itself (NOT a subdirectory within it). Never modify the source directory.
Steps
Create
<workspace-root-basename>-azure/at workspace rootAssess — Analyze source, map services, generate report using the scenario-specific assessment guide → functions assessment | app-service assessment
Migrate — Convert code/config using the scenario-specific migration guide → functions code-migration | app-service code-migration
Ask User — "Migration complete. Test locally or deploy to Azure?"
Hand off to azure-prepare for infrastructure, testing, and deployment
Track progress in migration-status.md — see workflow-details.md.
Files
- ATTRIBUTION.mdAdded by AutoGineer989 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md4.3 KiB
- references/services/app-service/app-engine-to-app-service.md7.1 KiB
- references/services/app-service/assessment.md5.2 KiB
- references/services/app-service/beanstalk-to-app-service.md6.4 KiB
- references/services/app-service/code-migration.md5.0 KiB
- references/services/app-service/global-rules.md2.8 KiB
- references/services/app-service/heroku-to-app-service.md7.5 KiB
- references/services/container-apps/assessment-guide.md7.0 KiB
- references/services/container-apps/cloudrun-assessment-guide.md2.5 KiB
- references/services/container-apps/cloudrun-deployment-guide.md7.9 KiB
- references/services/container-apps/cloudrun-to-container-apps.md2.2 KiB
- references/services/container-apps/deployment-guide.md9.6 KiB
- references/services/container-apps/fargate-assessment-guide.md2.4 KiB
- references/services/container-apps/fargate-deployment-guide.md10.1 KiB
- references/services/container-apps/fargate-to-container-apps.md4.0 KiB
- references/services/container-apps/k8s-to-container-apps.md4.9 KiB
- references/services/container-apps/spring-apps-to-aca.md3.8 KiB
- references/services/container-apps/spring-assessment-guide.md5.2 KiB
- references/services/container-apps/spring-dependency-patterns.md1.2 KiB
- references/services/container-apps/spring-deployment-guide.md15.1 KiB
- references/services/functions/assessment.md6.3 KiB
- references/services/functions/code-migration.md6.0 KiB
- references/services/functions/global-rules.md3.3 KiB
- references/services/functions/lambda-to-functions.md10.2 KiB
- references/services/functions/runtimes/csharp.md5.5 KiB
- references/services/functions/runtimes/java.md6.4 KiB
- references/services/functions/runtimes/javascript.md8.5 KiB
- references/services/functions/runtimes/powershell.md5.0 KiB
- references/services/functions/runtimes/python.md6.4 KiB
- references/services/functions/runtimes/typescript.md3.5 KiB
- references/workflow-details.md2.3 KiB
references/services/container-apps/spring-assessment-guide.md
Pre-Migration Assessment for Spring Boot to Azure Container Apps
Local State Assessment
| Issue | Impact | Solution |
|---|---|---|
| Singleton patterns | Multiple instances may run during updates | Refactor to stateless design |
| In-memory sessions | Lost during restarts/scaling | Migrate to Azure Cache for Redis |
| Local caching | Not shared across replicas | Use Azure Cache for Redis with Spring Data Redis |
| File-based state | Lost on restart | Migrate to Azure Cosmos DB, Azure SQL, or Azure Storage |
State Migration Options:
Azure Cache for Redis: Session data, distributed caching
Azure Cosmos DB: NoSQL data, document storage
Azure SQL/MySQL/PostgreSQL: Relational data
Azure Storage Blobs: Unstructured data, serialized objects
File System Usage
| Pattern | Container Apps Solution |
|---|---|
| Temporary files | Ephemeral storage (automatic, deleted on restart) |
| Shared persistent data | Azure Files storage mounts |
| Static content serving | Azure Blob Storage + Azure CDN |
| User uploads | Azure Blob Storage with Azure Function triggers |
Platform Compatibility
Supported Java Versions
For Spring Boot 2.x source apps: Java 8 or 11 supported for assessment
For Spring Boot 3.x target apps: Java 17 or 21 required (verify with
java -version)
Spring Boot Version Requirements
Recommended target: Spring Boot 3.x (requires Java 17+)
Supported source: Spring Boot 2.x on Java 8/11 → plan upgrade to Java 17+ and follow Spring Boot 3.0 Migration Guide
Spring Cloud Compatibility
Verify Spring Cloud version matches Spring Boot 3.x requirements
External Resources Inventory
Inventory all external dependencies. See spring-dependency-patterns.md for configuration examples (databases, message brokers, caches).
Identity Providers
| Provider | Configuration |
|---|---|
| OAuth2 | Spring Security reference docs |
| Auth0 | Auth0 Spring Security documentation |
| PingFederate | Spring Security SAML 2.0/OIDC docs, PingIdentity docs |
| Microsoft Entra ID | Update redirect URIs to new Container Apps FQDN |
Scheduled Jobs Assessment
| Job Type | Container Apps Solution |
|---|---|
| Unix cron jobs | Azure Container Apps Jobs (ephemeral) |
| Spring Batch tasks | Azure Container Apps Jobs |
| Quartz scheduler | Long-running app (handle scale-out race conditions) |
| Scheduled @Scheduled methods | Long-running app (handle multiple instances) |
Configuration & Secrets
Port Configuration
Default: 8080
Change via
server.portorSERVER_PORTenvironment variableConfigure in Container Apps ingress settings
Secrets Checklist
Inventory all secrets in application.properties/application.yml
Document database passwords, API keys, connection strings
Plan migration to Azure Key Vault
Update app to use Key Vault references or environment variables
Certificates
Run
keytool -list -v -keystore <path>to document SSL certificatesPlan migration to Azure Key Vault or Container Apps managed certificates
Deployment Architecture
Document current state:
Number of instances
CPU per instance (vCPU)
RAM per instance (GiB)
Regional distribution
Uptime requirements/SLA
Container Apps Limits:
Max 4 vCPU per container
Max 8 GiB RAM per container
Max 300 replicas per revision
Assessment Checklist
[ ] Identified all local state and planned migration to external storage
[ ] Reviewed file system usage and selected storage solution
[ ] Verified Java version compatibility (17+ for Spring Boot 3.x target; 8/11 for source assessment only)
[ ] Confirmed Spring Boot 3.x or planned upgrade
[ ] Inventoried databases (MySQL, PostgreSQL, MongoDB, Cosmos DB)
[ ] Inventoried message brokers (ActiveMQ, IBM MQ, Azure Service Bus)
[ ] Inventoried external caches (Redis)
[ ] Documented identity providers (OAuth2, SAML, Entra ID)
[ ] Identified scheduled jobs and selected execution model
[ ] Listed all configuration secrets for Key Vault migration
[ ] Documented SSL certificates
[ ] Recorded current deployment architecture (instances, CPU, RAM)
[ ] Reviewed logging configuration (console vs. file)
[ ] Identified APM tools (Application Insights, custom agents)
Complexity Guidelines
Low Complexity:
Stateless Spring Boot app with external database
No scheduled jobs or simple @Scheduled tasks
Standard Java version (11, 17, 21)
OAuth2/SAML authentication
Medium Complexity:
In-memory session state requiring Redis migration
File system writes requiring Azure Files or Blob Storage
Spring Boot 2.x requiring upgrade to 3.x
Message broker integration (ActiveMQ, Service Bus)
Scheduled jobs requiring Jobs configuration
High Complexity:
Multiple stateful components (local cache, sessions, file storage)
Custom JVM agents or APM integrations
Java 8 requiring upgrade to 11+
Complex scheduled jobs with coordination requirements
Multi-region deployment with traffic distribution
Custom identity provider federation
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/skills · .github/plugins/azure-skills/skills/azure-cloud-migrate · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from .github/plugins/azure-skills/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Also distributed in
- microsoft/azure-skills
AutoGineer is not affiliated with or endorsed by Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download azure-cloud-migrate.zip