A diagnostic tool for Python Azure Functions
Project description
🤔 Why Azure Functions Doctor?
- You're getting random 500 errors and suspect misconfiguration?
- Need to verify your dev environment before CI/CD deployment?
- Want a quick health check without digging through docs?
This tool saves time by automating common Azure Functions environment diagnostics.
🚀 Key Features
- Diagnose Python version, venv, azure-functions package
- Validate host.json, local.settings.json, and function structure
- Fully customizable via
rules.json(see docs)
🩺 Overview
Azure Functions Doctor is a Python-based CLI tool designed to diagnose and validate your local Azure Functions environment. This tool helps identify configuration issues, missing dependencies, or version mismatches commonly found in Python-based Azure Functions.
The behavior and rules for each check are defined declaratively in the rules.json file located in the project root. This file allows users and developers to customize or extend validation logic without modifying Python code directly.
📘 Learn more: rules.json documentation
🪠 Requirements
- Python 3.9+
- Git
- Optional: Azure Function Core Tools v4 (
npm i -g azure-functions-core-tools@4) - Recommended: Unix-like shell or PowerShell for Makefile support
📦 Installation
- Clone the repository and navigate to the project directory:
git clone https://github.com/yeongseon/azure-functions-doctor.git
cd azure-functions-doctor
- Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install the tool:
pip install -e .
Alternatively, install from PyPI (when published):
pip install azure-functions-doctor
🩺 Usage
Navigate to your Azure Functions project directory, then run:
azfunc-doctor diagnose
To see all available commands:
azfunc-doctor --help
✅ Sample Output
azfunc-doctor diagnose
🩺 Azure Functions Doctor for Python v0.1.0
📁 Path: /root/Github/azure-functions-doctor/examples/basic-hello
✖ Python Env
• Python version: Python version is 3.12.3, expected >=3.9
• Virtual environment: VIRTUAL_ENV is set
• Python executable: /root/.local/share/hatch/env/virtual/azure-functions-doctor/.../bin/python exists
• requirements.txt: /root/Github/azure-functions-doctor/examples/basic-hello/requirements.txt exists
• azure-functions package: Package 'azure_functions' is not installed
✖ Project Structure
• host.json: exists
• local.settings.json: is missing
• main.py: is missing
Summary
✔ 0 Passed ✖ 2 Failed
📌 Full output: examples/basic-hello/diagnose-output.md
💡 Example
A full example is available under examples/basic-hello, showing how to:
- Prepare a minimal Azure Functions app structure with only
host.jsonandrequirements.txt - Run
azfunc-doctorto simulate and inspect diagnosis results
📋 Documentation
For advanced usage and developer guides, visit the project site or GitHub repository.
🤝 Contributing
We welcome issues and pull requests!
See CONTRIBUTING.md for guidelines.
If you’ve found this tool helpful, please ⭐ the repo!
📄 License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azure_functions_doctor-0.1.0.tar.gz.
File metadata
- Download URL: azure_functions_doctor-0.1.0.tar.gz
- Upload date:
- Size: 3.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
006a08e641f72c26a03af9c123908bb5b7726507f82e8e2a2cdc7fc4600f1c66
|
|
| MD5 |
9fd46a18a07f8e5ea282bc2855d17943
|
|
| BLAKE2b-256 |
b76f85a1911d37d4b14b06f9c26435dbcc8aa7ee475235ec5b67387c77fddddc
|
File details
Details for the file azure_functions_doctor-0.1.0-py3-none-any.whl.
File metadata
- Download URL: azure_functions_doctor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bc3d5afc0d34813dc131cd18f562a9d4b79c2e04c124fa2c4e5184160cd4a6b
|
|
| MD5 |
deb30a9be45135dba6a2e734f22e5425
|
|
| BLAKE2b-256 |
644653a02e0d1dcab97009eff33da4a8fd43301393d394b292e6a6c7bf6d6369
|