Diagnostic tool for Azure Functions Python v2 programming model
Project description
Azure Functions Doctor
Read this in: 한국어 | 日本語 | 简体中文
Azure Functions Doctor is a diagnostic CLI for projects built on the Azure Functions Python v2 programming model.
It checks a local project for common issues such as:
- unsupported Python versions
- missing
host.jsonorrequirements.txt - missing
azure-functionsdependency - missing virtual environments
- missing Azure Functions Core Tools
- incomplete local development setup
Why Use It
Setting up an Azure Functions Python project involves multiple configuration files, dependencies, and tooling. Missing any one of them leads to confusing runtime errors. azure-functions-doctor checks your project against a curated ruleset and reports issues before they reach production.
Scope
This repository targets the decorator-based Azure Functions Python v2 programming model only.
- Supported model:
func.FunctionApp()with decorators such as@app.route() - Unsupported model: legacy
function.json-based Python v1 projects
Installation
From PyPI:
pip install azure-functions-doctor
From source:
git clone https://github.com/yeongseon/azure-functions-doctor.git
cd azure-functions-doctor
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Quick Start
Run the doctor in the current project:
azure-functions doctor
Run against a specific project:
azure-functions doctor --path ./examples/v2/http-trigger
Use a required-only profile:
azure-functions doctor --profile minimal
Output JSON for CI:
azure-functions doctor --format json
Demo
The demo below is generated from demo/doctor-demo.tape with VHS.
It runs the real azure-functions doctor CLI against the representative example
and then against an intentionally broken copy to show the pass/fail contrast.
The final terminal state is also captured as a static image for quick inspection.
Features
The default ruleset includes checks for:
- Azure Functions Python v2 decorator usage
- Python version
- virtual environment activation
- Python executable availability
requirements.txtazure-functionsdependency declarationhost.jsonlocal.settings.json(optional)- Azure Functions Core Tools presence and version (optional)
- Durable Functions host configuration (optional)
- Application Insights configuration (optional)
extensionBundleconfiguration (optional)- ASGI/WSGI callable exposure (optional)
- common unwanted files in the project tree (optional)
Examples
Requirements
- Python 3.10+
- Hatch for development workflows
- Azure Functions Core Tools v4+ recommended for local runs
Documentation
Ecosystem
- azure-functions-validation — Request and response validation
- azure-functions-openapi — OpenAPI and Swagger UI
- azure-functions-logging — Structured logging
- azure-functions-scaffold — Project scaffolding
- azure-functions-python-cookbook — Recipes and examples
Disclaimer
This project is an independent community project and is not affiliated with, endorsed by, or maintained by Microsoft.
Azure and Azure Functions are trademarks of Microsoft Corporation.
License
MIT
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.15.1.tar.gz.
File metadata
- Download URL: azure_functions_doctor-0.15.1.tar.gz
- Upload date:
- Size: 5.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6c10263d454f029f7bcfe422edf8d4953e1704256d7bb5d4593cfbe103d2e7f
|
|
| MD5 |
030360f8186af83d94cc26ca81b4d564
|
|
| BLAKE2b-256 |
284d1b08fba1b33a8f13dc5d25156de0f8db61eac35836a14369dbde879a593f
|
Provenance
The following attestation bundles were made for azure_functions_doctor-0.15.1.tar.gz:
Publisher:
release.yml on yeongseon/azure-functions-doctor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_functions_doctor-0.15.1.tar.gz -
Subject digest:
c6c10263d454f029f7bcfe422edf8d4953e1704256d7bb5d4593cfbe103d2e7f - Sigstore transparency entry: 1102127413
- Sigstore integration time:
-
Permalink:
yeongseon/azure-functions-doctor@bbe08e531792c28e6b1483a2256312240ce985fc -
Branch / Tag:
refs/tags/v0.15.1 - Owner: https://github.com/yeongseon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bbe08e531792c28e6b1483a2256312240ce985fc -
Trigger Event:
push
-
Statement type:
File details
Details for the file azure_functions_doctor-0.15.1-py3-none-any.whl.
File metadata
- Download URL: azure_functions_doctor-0.15.1-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859d8455be4c9808cf90ac6f02cc1c31c1bd5501712849e775dad523b893173d
|
|
| MD5 |
dce5b7a77e80c5d1d0ed420bbcac3e32
|
|
| BLAKE2b-256 |
e52cd5b27b0538a77785096d9a18a55cbc8bb2859b125a3e1938f2c9537911c6
|
Provenance
The following attestation bundles were made for azure_functions_doctor-0.15.1-py3-none-any.whl:
Publisher:
release.yml on yeongseon/azure-functions-doctor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_functions_doctor-0.15.1-py3-none-any.whl -
Subject digest:
859d8455be4c9808cf90ac6f02cc1c31c1bd5501712849e775dad523b893173d - Sigstore transparency entry: 1102127423
- Sigstore integration time:
-
Permalink:
yeongseon/azure-functions-doctor@bbe08e531792c28e6b1483a2256312240ce985fc -
Branch / Tag:
refs/tags/v0.15.1 - Owner: https://github.com/yeongseon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bbe08e531792c28e6b1483a2256312240ce985fc -
Trigger Event:
push
-
Statement type: