All skills
microsoft avatar

/azure-deploy

@b3c238e
by microsoftmicrosoft/skills3.1k stars
351

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.

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

This session only. Nothing lands on disk.

referencesrecipesazdpost-deployment.md

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

Post-Deployment Steps

Execute critical post-deployment configuration after infrastructure provisioning completes.

⚠️ Run AFTER azd up or azd provision completes successfully

When to Apply

Post-deployment steps are required when your deployment includes:

Scenario Required Actions
ASP.NET Core + Azure SQL + Managed Identity Grant managed identity SQL access, apply EF migrations
App Service + Azure SQL + Entra auth Grant App Service identity database permissions
Container Apps + SQL Database Configure managed identity access, run migrations

ASP.NET Core + EF Core + Azure SQL

Complete workflow for apps using Entity Framework with Azure SQL Database.

Prerequisites

  • azd up or azd provision completed successfully
  • App Service or Container App has system-assigned managed identity enabled
  • Azure SQL Server configured with Entra ID admin
  • EF Core project with migrations

Step 1: Grant Managed Identity SQL Access

Grant the App Service or Container App's managed identity permissions on the SQL database.

See SQL Managed Identity Access for detailed SQL scripts and examples.

Quick Template:

# Get the app identity name from azd
eval $(azd env get-values)
APP_NAME=$SERVICE_API_NAME  # or SERVICE_WEB_NAME

# Connect as Entra admin and grant permissions
# See sql-managed-identity.md for connection patterns

PowerShell:

# Get the app identity name from azd
azd env get-values | ForEach-Object {
    $name, $value = $_.Split('=', 2)
    Set-Item "env:$name" $value
}
$AppName = $env:SERVICE_API_NAME  # or SERVICE_WEB_NAME

# Connect as Entra admin and grant permissions
# See sql-managed-identity.md for connection patterns

Step 2: Apply EF Core Migrations

Apply Entity Framework migrations to create database schema.

See EF Core Migrations for deployment patterns and troubleshooting.

Quick Options:

Method Command Use When
azd hook Add postprovision hook in azure.yaml Automated deployments
Manual dotnet ef database update One-time or troubleshooting
SQL Script dotnet ef migrations script --idempotent Pre-generated scripts

Step 3: Verify Deployment

# Get app endpoint
ENDPOINT=$(azd env get-values | grep SERVICE_.*_URI | cut -d'=' -f2)

# Health check
curl -f "$ENDPOINT/health" || echo "Health check failed"

# Test database connectivity
curl -f "$ENDPOINT/api/test-db" || echo "Database connection failed"

PowerShell:

# Get app endpoint
$Endpoint = azd env get-values | Select-String -Pattern 'SERVICE_.*_URI' |
    Select-Object -First 1 | ForEach-Object { ($_ -split '=', 2)[1] }

# Health check
try { Invoke-WebRequest "$Endpoint/health" } catch { Write-Output "Health check failed" }

# Test database connectivity
try { Invoke-WebRequest "$Endpoint/api/test-db" } catch { Write-Output "Database connection failed" }

Expected Result:

  • HTTP 200 from health endpoint
  • No SQL authentication errors in logs
  • Application starts successfully

Common Issues

Error Cause Solution
Login failed for user '<token-identified principal>' Managed identity not granted SQL access Follow sql-managed-identity.md
Cannot open database Firewall rules block access Check SQL firewall, ensure "Allow Azure services" enabled
Invalid object name Migrations not applied Run EF migrations per ef-migrations.md
No such table Schema missing Apply migrations or check connection string database name

Best Practices

  1. Automate with azd hooks — Add postprovision hook to azure.yaml for repeatable deployments
  2. Use idempotent scripts — Generate SQL with dotnet ef migrations script --idempotent
  3. Verify incrementally — Test SQL access, then migrations, then endpoint
  4. Log everything — Enable verbose logging during initial setup for troubleshooting

References

Source: SKILL.md on GitHub

2 warnings15d4 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    This skill provides a robust framework for executing Azure deployments using various infrastructure-as-code tools. It includes several security considerations such as remote script installation and command execution, which are essential for its deployment functionality and are managed through strict prerequisite checks and user confirmation rules.

  • Socket15d

    1 alert: gptAnomaly

  • Snyk15d

    Risk: LOW · No issues

  • Runlayer7mo

    30/31 files flagged

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

Last checked against GitHub yesterday.

Activeupdated 2 months ago
metadata
{
  "author": "Microsoft",
  "version": "1.2.1"
}

README badge

README badge for microsoft/skills/azure-deploy