Workflow Details
Status Tracking
Maintain a migration-status.md file in the output directory (<workspace-root-basename>-azure/):
# Migration Status
| Phase | Status | Notes |
|-------|--------|-------|
| Assessment | โฌ Not Started | |
| Code Migration | โฌ Not Started | |Update status: โฌ Not Started โ ๐ In Progress โ โ Complete โ โ Failed
User Progress Updates
During long-running operations (Azure deployments, image pushes, environment provisioning), proactively report progress so the user is never left waiting without feedback:
- Resource-level status table โ After submitting a deployment, poll
az resource listoraz deployment operation group listand present a status table:
| Resource | Status |
|----------|--------|
| VNet | โ
Created |
| ACR | โ
Created |
| Container Apps Env | ๐ Provisioning |
| order-service | โฌ Waiting |- Explain what's slow โ If a resource takes >2 minutes (e.g., Container Apps Environment with VNet), tell the user *why* ("VNet integration provisions internal load balancers and DNS โ this typically takes 3-5 min").
- Don't go silent โ If a single
az deployment group createcovers all resources, pollaz resource list -g <rg>periodically and update the user on newly created resources. - Announce each phase transition โ When moving between skill phases (assess โ migrate โ deploy โ validate), clearly tell the user what just completed and what's next.
Error Handling
| Error | Cause | Remediation |
|---|---|---|
| Unsupported runtime | Source runtime not available in target Azure service | Check target service's supported languages documentation |
| Missing service mapping | Source service has no direct Azure equivalent | Use closest Azure alternative, document in assessment |
| Code migration failure | Incompatible patterns or dependencies | Review scenario-specific guide in lambda-to-functions.md |
azd init refuses non-empty directory | azd requires clean directory for template init | Use temp directory approach: init in empty dir, copy files back |
For scenario-specific errors (e.g., Azure Functions binding issues, trigger configuration), see the error table in the corresponding scenario reference.