
Azure Cloud Migrate
Migrate Google App Engine workloads to Azure App Service with service mapping, app.yaml to Bicep translation, and data store equivalents.
Install
npx skills add https://github.com/microsoft/azure-skills --skill azure-cloud-migrateWhat is this skill?
- Maps App Engine Standard and Flex tiers to App Service plan SKUs.
- Translates app.yaml fields to Bicep siteConfig, autoscale, and app settings.
- Covers Datastore/Firestore to Cosmos DB and Cloud Tasks to Service Bus patterns.
Adoption & trust: 307k installs on skills.sh; 1.2k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Azure Deploymicrosoft/azure-skills
Azure Preparemicrosoft/azure-skills
Azure Storagemicrosoft/azure-skills
Azure Validatemicrosoft/azure-skills
Appinsights Instrumentationmicrosoft/azure-skills
Azure Resource Lookupmicrosoft/azure-skills
Journey fit
Common Questions / FAQ
Is Azure Cloud Migrate safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Azure Cloud Migrate
# 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: python312` | Runtime stack: Python 3.12 | 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 ```yaml # app.yaml (GCP) runtime: python312 instance_class: F2 automatic_scaling: min_instances: 1 max_instances: 10 env_variables: DATABASE_URL: "postgres://..." ``` ```bicep // 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.12' 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 cl