
Skill
azure-functions-deploy
deploy Azure Functions applications
Description
Proxy Azure Functions deployment requests to the Azure Skills prepare, validate, and deploy workflow while preserving Azure Functions-specific guidance
SKILL.md
Language: Always respond in the same language the user is using.
azure-functions-deploy — Deploy Azure Functions
Deploy your Azure Functions app to Azure by proxying to the Azure Skills deployment workflow.
This skill is the Azure Functions-facing entry point. It should not run deployment commands directly. It prepares Azure Functions-specific context, then delegates execution to azure-prepare, azure-validate, and azure-deploy from the Azure Skills plugin.
Prerequisites
- Azure CLI installed and logged in (
az login) - Azure Developer CLI installed and logged in (
azd auth login) for AZD-based deployments - An Azure subscription (
az account show) - A Functions project with
host.jsonin the current directory - Azure Skills plugin installed with
azure-prepare,azure-validate, andazure-deployavailable
If any prerequisite is missing, suggest running azure-functions-setup first.
Required delegation model
Use Azure Skills as the deployment engine:
- If
.azure/deployment-plan.mdis missing, invokeazure-preparefirst — unless the shortcut path below applies. - If
.azure/deployment-plan.mdexists but is notValidated, invokeazure-validatebefore any deployment attempt. - If
.azure/deployment-plan.mdexists and status isValidated, invokeazure-deploydirectly. - Never mark the plan as
Validatedfrom this skill. Onlyazure-validatemay do that. - Do not run
azd up,azd deploy,terraform apply,az deployment, orfunc azure functionapp publishdirectly from this skill unless Azure Skills cannot handle the scenario and the user explicitly approves a fallback.
Shortcut path for MCP-template projects
When a project was scaffolded from an Azure MCP template (e.g., via azure-functions-create Path A), it already contains complete infrastructure. Detect this by checking all of these conditions:
azure.yamlexists in the project rootinfra/main.biceporinfra/*.tfexistshost.jsonexistsazure.yamlcontains ametadata.templatefield (indicates MCP template origin)
If all conditions are met, skip azure-prepare and proceed directly:
- Generate a lightweight
.azure/plan.mdnoting the pre-existing infrastructure - Invoke
azure-validate(provisions preview, environment setup) - Invoke
azure-deploy(runsazd up)
This avoids the redundant 5–10 minute analysis and planning phase for projects that already have production-ready infrastructure.
The normal workflow is:
azure-functions-deploy → azure-prepare → azure-validate → azure-deploy
When a validated plan already exists:
azure-functions-deploy → azure-deploy
Azure Functions context to inject
Before handing off, collect and pass the following Azure Functions-specific guidance to Azure Skills:
- Use Azure Functions deployment best-practices MCP guidance (
get_azure_bestpracticeswithresource: azurefunctionsandaction: deployment) when available. - Prefer Flex Consumption / FC1 for new serverless Function Apps.
- Include
functionAppConfigwith deployment storage for FC1 Function Apps. - Use Linux for Python Function Apps.
- Configure Function authentication or stronger mechanisms; avoid anonymous access unless intentional.
- Enable Application Insights for monitoring, exception tracking, and dependency monitoring.
- Consider private networking and one Function App per independently scaling workload when appropriate.
- Use Azure Functions endpoint verification after deploy; do not use
curl -Ifor HTTP trigger verification because HEAD can return false negatives.
Azure Skills plugin installation guidance
If Azure Skills is unavailable, stop and ask the user to install it for their host:
| Host | Install guidance |
|---|---|
| GitHub Copilot CLI | /plugin marketplace add microsoft/azure-skills, then /plugin install azure@azure-skills |
| Claude Code | /plugin install azure@claude-plugins-official |
| Codex CLI | codex plugin marketplace add microsoft/azure-skills, then install azure from /plugins |
| VS Code | Install the Azure MCP extension and companion Azure Skills integration, then reload VS Code |
| GitHub Copilot fallback | npx skills add https://github.com/microsoft/azure-skills/tree/main/.github/plugins/azure-skills/skills -a github-copilot -g -y |
Fallback policy
Prefer Azure Skills for all deployment execution. Use a Functions-specific fallback only when:
- Azure Skills cannot be installed or invoked in the current host,
- the user explicitly asks for a quick publish to an existing Function App, or
- a scenario is not covered by Azure Skills and must be handled by Azure Functions Core Tools.
Before using a fallback, explain what will be skipped compared with azure-prepare → azure-validate → azure-deploy, and ask for confirmation.
Post-deploy verification
Let azure-deploy own post-deploy verification. Add Azure Functions-specific reminders when relevant:
- List deployed functions and verify the app is running.
- Test HTTP trigger endpoints with GET, not HEAD.
- Suggest
azure-functions-health-statusfor runtime health, metrics, and Application Insights checks. - Suggest
azure-functions-best-practicesfor production readiness after successful deployment.
Monitoring azd up progress
The azd up command uses animated progress bars that may not render correctly in agent terminal capture. If the output appears stuck on a spinner (e.g., repeated "Initialize bicep provider"), the deployment is likely still progressing normally in the background.
To monitor deployment progress independently:
# Check resource group creation
az group show --name rg-<env-name> -o json
# Check deployment status
az deployment group list --resource-group rg-<env-name> \
--query "[].{name:name, state:properties.provisioningState}" -o table
# Check Function App status
az functionapp list --resource-group rg-<env-name> \
--query "[].{name:name, state:state}" -o table
Do not kill and restart the azd up process based solely on lack of terminal output. Instead, use the commands above to verify whether the deployment is progressing.
After Deployment
✅ Your app is deployed through Azure Skills. Consider running
azure-functions-best-practicesfor a production readiness review.
Next steps
- On missing Azure Skills, suggest
azure-functions-setupto install or configure the Azure Skills plugin. - On missing or unvalidated plan, invoke
azure-prepareandazure-validatebeforeazure-deploy. - On successful deployment, suggest
azure-functions-best-practicesfor production readiness. - On deployment failure, suggest
azure-functions-diagnosticsafterazure-deployerror recovery is exhausted.
More skills from the azure-functions-skills repository
View all 11 skillsazure-functions-agents
build and deploy Azure Functions agents
Jul 12AgentsAzureDeploymentServerlessazure-functions-best-practices
apply Azure Functions best practices
Jul 15AzureBest PracticesObservabilitySecurityazure-functions-common
reference Azure Functions documentation and configuration
Jul 15AzureConfigurationDocumentationazure-functions-create
scaffold Azure Functions projects and triggers
Jul 12API DevelopmentAzureEdge Functionsazure-functions-diagnostics
diagnose and resolve Azure Functions issues
Jul 12AzureDebuggingLogsMonitoringazure-functions-doctor
diagnose Azure Functions workspace configuration
Jul 15AzureCode AnalysisDebugging
More from Azure (Microsoft)
View publisherazure-arg-external-evaluation-policy-author
author and test Azure Resource Graph policies
azure-policy
Jul 12AzureComplianceGovernancePolicyazure-blueprints-migration
migrate Azure Blueprints to Template Specs
azure-blueprints
Jul 12AzureDeploymentInfrastructure as CodeMigrationapiview-feedback-resolution
resolve APIView feedback on Azure SDKs
azure-sdk-tools
Jul 12API DevelopmentAzureCode ReviewDocumentationazsdk-common-live-and-recorded-tests
deploy resources and run Azure SDK tests
azure-sdk-tools
Jul 12AzureDeploymentSDKTestingazsdk-common-prepare-release-plan
manage Azure SDK release plan work items
azure-sdk-tools
Jul 12AzureGitHubProject ManagementSDKazsdk-common-sdk-release
release Azure SDK packages
azure-sdk-tools
Jul 12AzureCI/CDDeploymentSDK