Important
Cookiecutter Relecloud is now the Azure Python Standardization Template Generator! This project will now be maintained at https://github.com/Azure-Samples/Azure-Python-Standardization-Template-Generator
Cookiecutter Relecloud
Table of Contents
What is Cookiecutter-Relecloud?
Cookiecutter is a command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python package project template.
Relecloud is a sample web app created by the Microsoft Python Cloud Advocacy team.
While most cookiecutter generated projects are designed to build with a particular stack, Cookiecutter-Relecloud allows you to create a relecloud project with your choice of web framework, database, and deployment options.
cookiecutter-django.mp4
Features
- Sync new updates to your project via cruft
- Deploy your project to Azure using Azure Developer CLI
Deployment Options
Feature | Django | FastAPI | Flask |
---|---|---|---|
Deployment | - | - | - |
Deploys via AZD | ✅ | ✅ | ✅ |
Deploys via Terraform | ❌ | ❌ | ❌ |
Deploys via ACA | ✅ | ✅ | ✅ |
Deploys with Azure App Service | ✅ | ✅ | ✅ |
Databases | - | - | - |
Azure ACA Postgres Plugin | ✅ | ✅ | ✅ |
Azure Cosmos DB (Postgres Adapter) | ✅ | ✅ | ✅ |
Azure Cosmos DB (MongoDB) | ❌ | ❌ | ✅ |
Azure Postgres Flexible Server | ✅ | ✅ | ✅ |
Azure Add-ons | - | - | - |
Azure vNet | ❌ | ❌ | ❌ |
Azure Secret KeyVault | ✅ | ✅ | ✅ |
|✅ (Developed)|🛠️ (In Development)|❌ (Currently Not Supported)|
To request support please create a new discussion.
Deployed Project Examples
Django
- Django Postgres - Flexible Server Azure Container Apps
- Django Postgres - Flexible Server Azure App Service
- Django CosmosDB Postgres Adapter Azure Container Apps
- Django CosmosDB Postgres Adapter Azure App Service
- Django Azure Container Apps Postgres Addon Azure Container Apps
FastAPI
- FastAPI Postgres - Flexible Server Azure Container Apps
- FastAPI Postgres - Flexible Server Azure App Service
- FastAPI CosmosDB Postgres Adapter Azure Container Apps
- FastAPI CosmosDB Postgres Adapter Azure App Service
- FastAPI Azure Container Apps Postgres Addon Azure Container Apps
Flask
- Flask Postgres - Flexible Server Azure Container Apps
- Flask Postgres - Flexible Server Azure App Service
- Flask CosmosDB Postgres Adapter Azure Container Apps
- Flask CosmosDB Postgres Adapter Azure App Service
- Flask Azure Container Apps Postgres Addon Azure Container Apps
- Flask CosmosDB - MongoDB Adapter Azure Container Apps
- Flask CosmosDB - MongoDB Adapter Azure App Service
Deploying your cookiecutter template
- Create a new folder
- Create a virtual environment
python -m venv venv
source venv/bin/activate
- Install necessary files
python -m pip install cruft packaging ruff
- Generate the project using this template
python -m cruft create https://github.com/kjaymiller/cookiecutter-relecloud
Getting Updates from this Template
Cruft allows you to update your project with the latest changes from this template. To do so, run the following command:
cruft update
Running your Deployment via DevContainer/Github Codespaces
This template is designed to work with DevContainers and GitHub Codespaces. You can deploy the Github Codespaces instance by clicking the green code button and creating a new codespace.
To deploy the dev container locally you can do so with a compatible code editor like Visual Studio Code.
Deploy your template to Azure
These templates are configured to deploy to Microsoft Azure via the Azure Developer CLI. You can deploy your project immediately using azd up