All skills
microsoft avatar

/azure-cloud-migrate

@ae5e585
by microsoftmicrosoft/skills3.1k stars
351

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.

Use this Skill: https://skilld.dev/gh/microsoft/skills/azure-cloud-migrate

This session only. Nothing lands on disk.

referencesservicesapp-serviceapp-engine-to-app-service.md

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

Google App Engine to Azure App Service Migration

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

Service Mapping

GCP Service Azure Equivalent
App Engine (Standard) Azure App Service (Standard/Premium plan)
App Engine (Flex) Azure App Service (Premium v3) or Container Apps
App Engine Services App Service apps (one per service)
app.yaml azure.yaml + Bicep
Datastore / Firestore Azure Cosmos DB
Cloud SQL (PostgreSQL) Azure Database for PostgreSQL Flexible Server
Cloud SQL (MySQL) Azure Database for MySQL Flexible Server
Cloud Storage Azure Blob Storage
Cloud Tasks Azure Service Bus / Durable Functions
Cloud Pub/Sub Azure Service Bus / Event Grid
Memcache / Memorystore Azure Cache for Redis
Cloud Scheduler Azure Functions Timer trigger
Cloud CDN Azure Front Door / Azure CDN
Cloud DNS Azure DNS
Cloud Logging Application Insights / Azure Monitor
Cloud Monitoring Azure Monitor Metrics
Cloud Trace Application Insights (distributed tracing)
Cloud IAM Managed Identity + Azure RBAC
Cloud Build GitHub Actions / Azure DevOps
Traffic Splitting Deployment Slots (weighted routing)
Service Versions Deployment Slots
Cloud KMS Azure Key Vault
Secret Manager Azure Key Vault
Cloud Endpoints Azure API Management
Identity-Aware Proxy Azure Front Door + Entra ID auth
VPC Connector VNet Integration

Standard vs Flex → App Service Plan Mapping

App Engine Tier App Service Equivalent Notes
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 Field Azure Equivalent Implementation
runtime: python314 Runtime stack: Python 3.14 Bicep siteConfig.linuxFxVersion
instance_class: F2 App Service Plan SKU Bicep sku.name
automatic_scaling Autoscale settings Bicep Microsoft.Insights/autoscalesettings
env_variables App Settings Bicep siteConfig.appSettings
handlers (URL routing) App Service path mappings / Front Door Route rules
entrypoint Startup command az webapp config set --startup-file
vpc_access_connector VNet Integration Bicep virtualNetworkSubnetId
inbound_services: [warmup] Always On Bicep 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 Feature Cosmos DB Equivalent
Entity / Document Item
Kind / Collection Container
Namespace Database
Key / ID Partition key + ID
Ancestor queries Hierarchical partition keys
Eventual consistency Session or Eventual consistency
Strong consistency Strong 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 Feature Azure Equivalent
HTTP target tasks Service Bus + Azure Functions
App Engine target tasks Service Bus + WebJobs
Task scheduling (delayed) Service Bus scheduled messages
Task retry / dead-letter Service Bus retry + dead-letter queue
Rate limiting Service Bus message throttling
Task orchestration Durable Functions (fan-out/fan-in)

Traffic Splitting → Deployment Slots

App Engine Feature Azure Equivalent
Version traffic splitting (%) Slot traffic routing (%)
Canary deployment Slot with low traffic %
A/B testing Slot traffic routing
Version rollback Slot swap (revert)
Gradual rollout Increase slot traffic % incrementally
Warmup requests Slot 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 Feature Azure Cache for Redis
memcache.get() / set() redis.get() / redis.set()
Shared memcache Azure Cache for Redis (Basic)
Dedicated memcache Azure Cache for Redis (Standard/Premium)
Session store Redis session store
Cache expiry Redis TTL

Environment Variables Migration

Source Target Notes
app.yaml env_variables App Settings Non-sensitive config
Secret Manager refs Key Vault references @Microsoft.KeyVault(SecretUri=...)
Runtime env (auto-injected) App Settings Map GAE-specific vars
GAE_APPLICATION WEBSITE_SITE_NAME Auto-injected by App Service
PORT PORT Auto-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 / gcloud Azure Equivalent
gcloud app deploy az webapp deploy or azd deploy
cloudbuild.yaml .github/workflows/deploy.yml
Cloud Build triggers GitHub Actions triggers
Artifact Registry Azure Container Registry
gcloud app versions Deployment slots

Reference Links

Source: SKILL.md on GitHub

No alerts15d3 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    This skill facilitates cloud workload migration to Azure with a focus on security best practices. It includes security considerations such as an attack surface for indirect prompt injection during source code analysis and the handling of sensitive credentials. While these warrant review, the skill provides robust patterns for secure secret management and identity-based access. See detailed analysis for context.

  • Socket15d

    No alerts

  • Snyk15d

    Risk: LOW · No issues

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

Last checked against GitHub yesterday.

Activeupdated last month
metadata
{
  "author": "Microsoft",
  "version": "1.3.2"
}

README badge

README badge for microsoft/skills/azure-cloud-migrate