From 46df859b2a5f1acb3d045bc3b2892504d5feb7c9 Mon Sep 17 00:00:00 2001 From: Anirudh Garg Date: Tue, 11 Nov 2025 21:51:50 -0800 Subject: [PATCH] Python: Add README for Azure Functions samples setup (#2100) * Add README for Azure Functions samples setup Added setup instructions for Azure Functions samples, including environment setup, virtual environment creation, and running samples. * Update python/samples/getting_started/azure_functions/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Laveesh Rohra --- .../getting_started/azure_functions/README.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 python/samples/getting_started/azure_functions/README.md diff --git a/python/samples/getting_started/azure_functions/README.md b/python/samples/getting_started/azure_functions/README.md new file mode 100644 index 0000000000..1ec9dbde3d --- /dev/null +++ b/python/samples/getting_started/azure_functions/README.md @@ -0,0 +1,47 @@ +These are common starting instructions for how to set up your environment for all the samples in this directory. +These samples are for illustrating the use of the Durable extensibility to Agent Framework running in Azure Functions. + +All of these samples are set up to run in Azure Functions. Azure Functions has a local development tool called [CoreTools](https://learn.microsoft.com/azure/azure-functions/functions-run-local?tabs=windows%2Cpython%2Cv2&pivots=programming-language-python#install-the-azure-functions-core-tools) which we will set up to run these samples locally. + +## Environment Setup + +### 1. Install dependencies and create appropriate services + +- Install [Azure Functions Core Tools 4.x](https://learn.microsoft.com/azure/azure-functions/functions-run-local?tabs=windows%2Cpython%2Cv2&pivots=programming-language-python#install-the-azure-functions-core-tools) + +- Install [Azurite storage emulator](https://learn.microsoft.com/en-us/azure/storage/common/storage-install-azurite?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json&tabs=visual-studio%2Cblob-storage) + +- Create an [Azure OpenAI](https://azure.microsoft.com/en-us/products/ai-foundry/models/openai) resource. Note the Azure OpenAI endpoint, deployment name and the Key. + +- Install a tool to execute HTTP calls, for example the [REST Client extension](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) + +- [Optionally] Create an [Azure Function Python app](https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-function-app-portal?tabs=core-tools&pivots=flex-consumption-plan) to later deploy your app to Azure if you so desire. + +### 2. Create and activate a virtual environment + +**Windows (PowerShell):** +```powershell +python -m venv .venv +.venv\Scripts\Activate.ps1 +``` + +**Linux/macOS:** +```bash +python -m venv .venv +source .venv/bin/activate +``` + +### 3. Running the samples + +- [Start the Azurite emulator](https://learn.microsoft.com/en-us/azure/storage/common/storage-install-azurite?tabs=npm%2Cblob-storage#run-azurite) + +- Inside each sample: + + - Install Python dependencies – from this folder, run `pip install -r requirements.txt` (or the equivalent in your active virtual environment). + + - Copy `local.settings.json.template` to `local.settings.json`, then update `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME`, and `AZURE_OPENAI_API_KEY` so the Azure OpenAI SDK can authenticate; keep `TASKHUB_NAME` set to `default` unless you plan to change the durable task hub name. + + +- Run the command `func start` from the root of the sample + +- Follow the specific instructions/requests for each sample