- Added detailed planning, code generation, testing, and deployment steps for Azure Functions. - Introduced status tracking and error handling mechanisms. - Established best practices for code generation and deployment, including security and structure guidelines. - Created GitHub Actions workflow for production deployment with build, test, and deployment stages. - Developed PowerShell script for full production deployment with custom domain support. - Designed Bicep templates for infrastructure setup, including Azure Static Web Apps and Function Apps. - Configured parameters for production deployment, including Stripe public key and custom domain settings. - Added SWA CLI configuration for local development and deployment. - Documented production deployment success criteria and post-deployment tasks.
8.8 KiB
8.8 KiB
description, tools, model
| description | tools | model | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Generate and deploy Azure Functions with comprehensive planning, code generation, and deployment automation. |
|
Claude Sonnet 4 |
Azure Functions Code Generation and Deployment
Enterprise-grade Azure Functions development workflow with automated planning, code generation, testing, and deployment using Azure best practices and Infrastructure as Code (IaC).
Core Workflow
Make sure to ask the user to confirm to move forward with each step.
1. Planning Phase
- Architecture Definition: Define function structure, components, and configurations by considering the best practices for both code generation and deployment
- Technology Stack: Specify programming language, runtime version, and tools
- Resource Requirements: Identify Azure resources and consumption plans
- Validation Strategy: Define testing approaches and success criteria
- Documentation: Save plan to
azure_functions_codegen_and_deployment_plan.md
2. Status Tracking
- Progress Monitoring: Track completion of each phase with detailed status
- Error Handling: Log failures and recovery steps for troubleshooting
- Documentation: Maintain
azure_functions_codegen_and_deployment_status.md
3. Code Generation
- Prerequisites: Verify development tools and runtime versions
- Best Practices: Apply Azure Functions and general code generation standards. Invoke the
get_bestpracticestool twice to collect recommendations from both perspectives:- Call with resource =
azurefunctionsand action =code-generationto get Azure Functions specific code generation best practices. - Call with resource =
generaland action =code-generationto get general Azure code generation best practices. Combine the results and apply relevant recommendations from both responses.
- Call with resource =
- Security: Set appropriate authentication levels (default:
function) - Structure: Follow language-specific project layouts and conventions
- Python: Do not use grpcio dependent packages such as azure-functions-worker, unless necessary
- JavaScript v4 Structure:
root/ ├── host.json # Function host configuration ├── local.settings.json # Development settings ├── package.json # Dependencies ├── src/ │ ├── app.js # Main application entry │ └── [modules].js # Business logic └── tests/ # Test suite
4. Local Validation
Start the function app locally and carefully monitor the startup output. Look for any errors, warnings, or unusual messages. Don't proceed to testing until you've confirmed a clean startup. If you see any issues, investigate and fix them before continuing.
- Testing: Achieve 80%+ code coverage with comprehensive test suite
- Execution: Validate local function execution and performance
- Process Management: Clean shutdown of existing instances of the function app before restart
- macOS/Linux:
pkill -9 -f func - Windows:
taskkill /F /IM func.exe /T
- macOS/Linux:
Post-Testing Cleanup Protocol
Upon finishing testing, ensure all processes are properly shut down to prevent resource conflicts and port binding issues:
5. Deployment
- Infrastructure: Refer to the following GitHub repos for best practices on generating Bicep templates using Azure Verified Modules (AVM):
- Best Practices: Apply Azure Functions and general deployment standards. Invoke the
get_bestpracticestool twice to collect recommendations from both perspectives:- Call with resource =
azurefunctionsand action =deploymentto get Azure Functions specific deployment best practices. - Call with resource =
generaland action =deploymentto get general Azure deployment best practices. Combine the results and apply relevant recommendations from both responses.
- Call with resource =
- Pre-deployment: Validate templates, check quotas, and verify region availability
- Deployment Strategy: Use
azd upwith managed identity.- ALWAYS Use Flex Consumption plan (FC1) for deployment, never Y1 dynamic.
- ALWAYS include functionAppConfig for FC1 Function Apps with deployment.storage configuration. Refer to these Azd samples to learn how to construct Flex Consumption plan correctly.
- Documentation: Record each deployment attempt with failure reasons and solutions
- Failure Recovery: Always clean up partial deployments before retrying
- Use
azd down --forceto delete failed deployment resources and deployed code
- Use
- Alternative Methods: If all the resources were provisioned successfully but the app failed to be deployed with error message "deployment failed: Input string was not in a correct format. Failure to parse near offset 40. Format item ends prematurely.", use Azure CLI deployment to upload the function app code.
6. Post-Deployment
- Authentication: Retrieve function names being deployed, then retrieve and configure function keys
- Endpoint Testing: Validate all function endpoints with proper authentication
- Monitoring: Verify Application Insights telemetry and establish performance baselines
- Documentation: Create a README with deployment and usage instructions
Enterprise Environment Considerations
Corporate Policy Compliance
- Alternative Strategies: Prepare Azure CLI fallback for blocked
azdcommands - Compliance Standards: Use Azure Verified Modules (AVM) for enterprise requirements
- Network Restrictions: Consider VNet integration and private endpoints
Security & Authentication
- Managed Identity: Preferred authentication method for Azure-hosted resources
- Function Keys: Use function-level keys following principle of least privilege
- Key Management: Retrieve keys post-deployment for endpoint testing
- RBAC Configuration: Implement proper role assignments for dependencies
Quality Assurance
Testing Requirements
- Unit Tests: 100% passing rate
- Integration Tests: 80%+ coverage of main scenarios
- Code Quality: ESLint/linting checks passing
- Performance: Baseline performance validation
Deployment Validation
- Infrastructure: Bicep templates pass validation
- Pre-deployment: Use deploy tool and set parameter
commandto bedeploy_iac_rules_getto get the best practices rules for iac generation. - Authentication: Proper managed identity and RBAC configuration
- Monitoring: Application Insights receiving telemetry
Failure Recovery & Troubleshooting
Common Issues & Solutions
- Policy Violations: Switch to Azure CLI deployment methods
- Missing Dependencies: Systematic tool installation and validation
- Authentication Issues: Comprehensive RBAC and managed identity setup
- Runtime Compatibility: Use supported versions (Node.js 20+, Python 3.11+)
- Partial Deployments: Clean resource group deletion before retry
Deployment Failure Recovery Protocol
# Delete failed deployment resources and deployed code
azd down --force
# Or
# Clean failed deployment
az group delete --name rg-<AZURE_ENV_NAME> --yes --no-wait
az group wait --name rg-<AZURE_ENV_NAME> --deleted --timeout 300
# Retry deployment
azd up
Reference Resources
Azure Functions Best Practices
- Programming Models: Use latest versions (v4 JavaScript, v2 Python)
- Extension Bundles: Prefer over SDKs for simplified dependency management
- Event Sources: Use EventGrid for blob triggers
- Configuration: Generate
local.settings.jsonfor local development