Generated banner for Azure Cloud Migrate
Generated logo for Azure Cloud Migrate

Azure Cloud Migrate

MicrosoftOfficialCreated by Microsoft

  • Skill
  • Workflow
  • Cloud and DevOps
  • MIT
  • Low risk

From the author

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.
— the description by Microsoft

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

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/microsoft/azure-cloud-migrate/download
  2. Unzip 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

  1. Follow phases sequentially — do not skip

  2. Generate assessment before any code migration

  3. Load the scenario reference and follow its rules

  4. Use mcp_azure_mcp_get_azure_bestpractices and mcp_azure_mcp_documentation MCP tools

  5. Use the latest supported runtime for the target service

  6. Destructive actions require ask_user — functions global-rules | app-service global-rules

  7. Report 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

  8. 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

SourceTargetReference
AWS LambdaAzure Functionslambda-to-functions.md (assessment, code-migration)
AWS Elastic BeanstalkAzure App Servicebeanstalk-to-app-service.md
HerokuAzure App Serviceheroku-to-app-service.md
Google App EngineAzure App Serviceapp-engine-to-app-service.md
AWS Fargate (ECS)Azure Container Appsfargate-to-container-apps.md (assessment, deployment)
Kubernetes (GKE/EKS/Self-hosted)Azure Container Appsk8s-to-container-apps.md
GCP Cloud RunAzure Container Appscloudrun-to-container-apps.md
Spring Boot (Azure Spring Apps/VMs)Azure Container Appsspring-apps-to-aca.md

No matching scenario? Use mcp_azure_mcp_documentation and mcp_azure_mcp_get_azure_bestpractices tools.

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

  1. Create <workspace-root-basename>-azure/ at workspace root

  2. Assess — Analyze source, map services, generate report using the scenario-specific assessment guide → functions assessment | app-service assessment

  3. Migrate — Convert code/config using the scenario-specific migration guide → functions code-migration | app-service code-migration

  4. Ask User — "Migration complete. Test locally or deploy to Azure?"

  5. Hand off to azure-prepare for infrastructure, testing, and deployment

Track progress in migration-status.md — see workflow-details.md.

Files

references/services/app-service/app-engine-to-app-service.md

Google App Engine to Azure App Service Migration

Detailed guidance for migrating Google App Engine applications to Azure App Service.

Service Mapping

GCP ServiceAzure Equivalent
App Engine (Standard)Azure App Service (Standard/Premium plan)
App Engine (Flex)Azure App Service (Premium v3) or Container Apps
App Engine ServicesApp Service apps (one per service)
app.yamlazure.yaml + Bicep
Datastore / FirestoreAzure Cosmos DB
Cloud SQL (PostgreSQL)Azure Database for PostgreSQL Flexible Server
Cloud SQL (MySQL)Azure Database for MySQL Flexible Server
Cloud StorageAzure Blob Storage
Cloud TasksAzure Service Bus / Durable Functions
Cloud Pub/SubAzure Service Bus / Event Grid
Memcache / MemorystoreAzure Cache for Redis
Cloud SchedulerAzure Functions Timer trigger
Cloud CDNAzure Front Door / Azure CDN
Cloud DNSAzure DNS
Cloud LoggingApplication Insights / Azure Monitor
Cloud MonitoringAzure Monitor Metrics
Cloud TraceApplication Insights (distributed tracing)
Cloud IAMManaged Identity + Azure RBAC
Cloud BuildGitHub Actions / Azure DevOps
Traffic SplittingDeployment Slots (weighted routing)
Service VersionsDeployment Slots
Cloud KMSAzure Key Vault
Secret ManagerAzure Key Vault
Cloud EndpointsAzure API Management
Identity-Aware ProxyAzure Front Door + Entra ID auth
VPC ConnectorVNet Integration

Standard vs Flex → App Service Plan Mapping

App Engine TierApp Service EquivalentNotes
Standard (F1 instance)Free (F1)Dev/test only
Standard (B1/B2)Basic (B1/B2)Low-traffic apps
Standard (auto-scaling)Standard (S1-S3)Auto-scale, slots
Flex (custom runtime)Premium v3 (P1v3-P3v3)Custom containers
Flex (high-memory)Premium v3 (P3v3)Up to 32 GB RAM

app.yaml → azure.yaml + Bicep

App Engine Configuration Mapping
app.yaml FieldAzure EquivalentImplementation
runtime: python314Runtime stack: Python 3.14Bicep siteConfig.linuxFxVersion
instance_class: F2App Service Plan SKUBicep sku.name
automatic_scalingAutoscale settingsBicep Microsoft.Insights/autoscalesettings
env_variablesApp SettingsBicep siteConfig.appSettings
handlers (URL routing)App Service path mappings / Front DoorRoute rules
entrypointStartup commandaz webapp config set --startup-file
vpc_access_connectorVNet IntegrationBicep virtualNetworkSubnetId
inbound_services: [warmup]Always OnBicep siteConfig.alwaysOn: true
Example: app.yaml → Bicep
# app.yaml (GCP)
runtime: python312
instance_class: F2
automatic_scaling:
  min_instances: 1
  max_instances: 10
env_variables:
  DATABASE_URL: "postgres://..."
// Bicep equivalent
resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  sku: { name: 'S2', capacity: 1 }
  properties: { reserved: true }
}

resource webApp 'Microsoft.Web/sites@2023-12-01' = {
  properties: {
    siteConfig: {
      linuxFxVersion: 'PYTHON|3.14'
      alwaysOn: true
      appSettings: [
        { name: 'PGHOST', value: postgresServer.properties.fullyQualifiedDomainName }
      ]
    }
  }
}

Datastore / Firestore → Cosmos DB

Datastore FeatureCosmos DB Equivalent
Entity / DocumentItem
Kind / CollectionContainer
NamespaceDatabase
Key / IDPartition key + ID
Ancestor queriesHierarchical partition keys
Eventual consistencySession or Eventual consistency
Strong consistencyStrong consistency
ndb / google.cloud.datastore@azure/cosmos SDK

💡 Tip: Use Cosmos DB for NoSQL API for the closest mapping from Datastore. Use Cosmos DB for MongoDB API if the app already uses MongoDB-compatible patterns.

Cloud Tasks → Service Bus / Durable Functions

Cloud Tasks FeatureAzure Equivalent
HTTP target tasksService Bus + Azure Functions
App Engine target tasksService Bus + WebJobs
Task scheduling (delayed)Service Bus scheduled messages
Task retry / dead-letterService Bus retry + dead-letter queue
Rate limitingService Bus message throttling
Task orchestrationDurable Functions (fan-out/fan-in)

Traffic Splitting → Deployment Slots

App Engine FeatureAzure Equivalent
Version traffic splitting (%)Slot traffic routing (%)
Canary deploymentSlot with low traffic %
A/B testingSlot traffic routing
Version rollbackSlot swap (revert)
Gradual rolloutIncrease slot traffic % incrementally
Warmup requestsSlot warm-up (pre-swap)
// Configure traffic routing: 90% production, 10% staging
resource siteConfig 'Microsoft.Web/sites/config@2023-12-01' = {
  name: 'web'
  properties: {
    experiments: {
      rampUpRules: [{
        actionHostName: '${webApp.name}-staging.azurewebsites.net'
        reroutePercentage: 10
        name: 'staging'
      }]
    }
  }
}

Memcache → Azure Cache for Redis

Memcache FeatureAzure Cache for Redis
memcache.get() / set()redis.get() / redis.set()
Shared memcacheAzure Cache for Redis (Basic)
Dedicated memcacheAzure Cache for Redis (Standard/Premium)
Session storeRedis session store
Cache expiryRedis TTL

Environment Variables Migration

SourceTargetNotes
app.yaml env_variablesApp SettingsNon-sensitive config
Secret Manager refsKey Vault references@Microsoft.KeyVault(SecretUri=...)
Runtime env (auto-injected)App SettingsMap GAE-specific vars
GAE_APPLICATIONWEBSITE_SITE_NAMEAuto-injected by App Service
PORTPORTAuto-injected by App Service
GOOGLE_CLOUD_PROJECT(no equivalent)GCP project IDs identify a runtime environment; Azure subscription IDs are a tooling/billing context, not a runtime equivalent. Use App Service WEBSITE_RESOURCE_GROUP or rely on DefaultAzureCredential to discover the subscription at runtime if needed.

CI/CD Migration

Cloud Build / gcloudAzure Equivalent
gcloud app deployaz webapp deploy or azd deploy
cloudbuild.yaml.github/workflows/deploy.yml
Cloud Build triggersGitHub Actions triggers
Artifact RegistryAzure Container Registry
gcloud app versionsDeployment slots

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