From 761915723be912a7e1414981b7d371c5503bd4b4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:28:45 +0000 Subject: [PATCH 01/12] Initial plan From 2e8bfba0f22f8bcb1d5d89c6288b36ad7bbd9625 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:36:32 +0000 Subject: [PATCH 02/12] Add Python template and onboarding documentation Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- docs/fundamentals/aspire-sdk-templates.md | 23 ++- .../build-aspire-apps-with-python.md | 72 ++++++- docs/get-started/build-aspire-python-app.md | 193 ++++++++++++++++++ docs/toc.yml | 9 +- 4 files changed, 290 insertions(+), 7 deletions(-) create mode 100644 docs/get-started/build-aspire-python-app.md diff --git a/docs/fundamentals/aspire-sdk-templates.md b/docs/fundamentals/aspire-sdk-templates.md index f3f7ab7f34..428b111421 100644 --- a/docs/fundamentals/aspire-sdk-templates.md +++ b/docs/fundamentals/aspire-sdk-templates.md @@ -37,6 +37,18 @@ The following Aspire solution templates are available, assume the solution is na - **AspireSample.Web**: An [ASP.NET Core Blazor App](/aspnet/core/blazor) project with default Aspire service configurations, this project depends on the [**AspireSample.ServiceDefaults**](#service-defaults) project. - **AspireSample.Test**: Either an [MSTest](#mstest-project), [NUnit](#nunit-project), or [xUnit](#xunit-project) test project with project references to the [**AspireSample.AppHost**](#app-host) and an example _WebTests.cs_ file demonstrating an integration test. + + +- **Aspire Python App**: A full-stack Aspire application with a Python backend and JavaScript frontend. This template includes: + + - [**AspireSample.AppHost**](#app-host): An orchestrator project to connect and configure services. + - [**AspireSample.ServiceDefaults**](#service-defaults): A shared project for common configurations. + - **AspireSample.Backend**: A Python backend using FastAPI framework with OpenTelemetry instrumentation. + - **AspireSample.Frontend**: A JavaScript frontend using React framework. + + > [!NOTE] + > The Aspire Python template is currently under development. For more information and updates, see [GitHub: Aspire issue #11865](https://github.com/dotnet/aspire/issues/11865). For now, you can manually add Python applications to an existing Aspire solution using the guidance in [Orchestrate Python apps in Aspire](../get-started/build-aspire-apps-with-python.md). + ### Project templates The following Aspire project templates are available: @@ -106,8 +118,17 @@ To create an Aspire starter app, which is a full solution with a sample UI and b dotnet new aspire-starter ``` +To create an Aspire app with a Python backend and JavaScript frontend: + +```dotnetcli +dotnet new aspire-python +``` + +> [!NOTE] +> The `aspire-python` template is currently under development. For more information, see [Build an Aspire app with Python and JavaScript](../get-started/build-aspire-python-app.md). + > [!TIP] -> Aspire templates default to using the latest .NET version, even when using an earlier version of the .NET CLI. To manually specify the .NET version, use the `--framework ` option, e.g. to create a basic [Aspire AppHost](app-host-overview.md) project targeting .NET 8: +> Aspire templates default to using the latest .NET version, even when using an earlier version of the .NET CLI. To manually specify the .NET version, use the `--framework ` option, for example to create a basic [Aspire AppHost](app-host-overview.md) project targeting .NET 8: > > ```dotnetcli > dotnet new aspire-apphost --framework net8.0 diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index 45cc876bba..acb7ecfa54 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -1,13 +1,16 @@ --- title: Orchestrate Python apps in Aspire -description: Learn how to integrate Python apps into an Aspire AppHost project. -ms.date: 04/15/2025 +description: Learn how to integrate existing Python apps into an Aspire AppHost project. +ms.date: 10/17/2025 ms.custom: sfi-image-nochange --- # Orchestrate Python apps in Aspire -In this article, you learn how to use Python apps in an Aspire AppHost. The sample app in this article demonstrates launching a Python application. The Python extension for Aspire requires the use of virtual environments. +In this article, you learn how to add existing Python applications to an Aspire solution. This approach is ideal when you have an existing Python codebase and want to add Aspire orchestration and observability capabilities to it. The sample app in this article demonstrates launching a Python application with Flask. The Python extension for Aspire requires the use of virtual environments. + +> [!TIP] +> If you're starting a new project from scratch, consider using the Aspire Python template instead. See [Build an Aspire app with Python and JavaScript](build-aspire-python-app.md) for more information. [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] @@ -194,10 +197,71 @@ Once the AppHost is running, navigate to the dashboard and select the **Structur :::image source="media/python-telemetry-in-dashboard.png" lightbox="media/python-telemetry-in-dashboard.png" alt-text="Aspire dashboard: Structured logging from Python process."::: +## Onboard existing Python applications + +If you have an existing Python application that you want to add to Aspire, here are some key considerations and best practices: + +### Common Python frameworks + +Aspire works with various Python web frameworks. The most common ones include: + +- **Flask**: A lightweight WSGI web application framework +- **FastAPI**: A modern, fast web framework for building APIs with Python +- **Django**: A high-level web framework that encourages rapid development + +The integration process is similar across frameworks: + +1. Ensure your application can read configuration from environment variables +1. Add OpenTelemetry instrumentation for observability +1. Use the `AddPythonApp` API in your AppHost to orchestrate the application + +### Migration tips + +When migrating an existing Python application to Aspire: + +1. **Virtual environments**: Ensure your application uses a virtual environment (`.venv` directory) +1. **Dependencies**: List all dependencies in a `requirements.txt` file +1. **Configuration**: Use environment variables for configuration instead of hardcoded values +1. **Port binding**: Make your application read the port from an environment variable (commonly `PORT`) +1. **Logging**: Configure logging to work with OpenTelemetry for better observability + +### Common pitfalls + +Be aware of these common issues when onboarding Python apps: + +- **Certificate issues**: When running locally, you might need to set `ASPIRE_ALLOW_UNSECURED_TRANSPORT=true` in your AppHost launch settings +- **Path issues**: Ensure the path to your Python entry point file is correct relative to the AppHost project +- **Virtual environment activation**: The `AddPythonApp` API handles virtual environment activation automatically—you don't need to activate it manually +- **Python version compatibility**: Ensure your Python version is compatible with the packages you're using + +### Multiple Python services + +If you have multiple Python services, you can add them all to the same AppHost: + +```csharp +var builder = DistributedApplication.CreateBuilder(args); + +var pythonApi = builder.AddPythonApp("python-api", "../python-api", "main.py") + .WithHttpEndpoint(port: 8111); + +var pythonWorker = builder.AddPythonApp("python-worker", "../python-worker", "worker.py"); + +builder.Build().Run(); +``` + ## Summary -While there are several considerations that are beyond the scope of this article, you learned how to build Aspire solution that integrates with Python. You also learned how to use the `AddPythonApp` API to host Python apps. +In this article, you learned how to integrate existing Python applications into an Aspire solution. You learned how to: + +- Create an Aspire AppHost project +- Prepare a Python application with a virtual environment +- Install the Python hosting package +- Use the `AddPythonApp` API to orchestrate Python apps +- Add OpenTelemetry for observability +- Handle common pitfalls and best practices for migrating existing Python apps ## See also +- [Build an Aspire app with Python and JavaScript](build-aspire-python-app.md) - [GitHub: Aspire Samples—Python hosting integration](https://github.com/dotnet/aspire-samples/tree/main/samples/AspireWithPython) +- [GitHub: Aspire issue #11865 - Python Templates](https://github.com/dotnet/aspire/issues/11865) diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md new file mode 100644 index 0000000000..d2cb0c3955 --- /dev/null +++ b/docs/get-started/build-aspire-python-app.md @@ -0,0 +1,193 @@ +--- +title: Build an Aspire app with Python and JavaScript +description: Learn how to create a new Aspire application with a Python backend and JavaScript frontend using the Aspire Python template. +ms.date: 10/17/2025 +ms.custom: sfi-image-nochange +ai-usage: ai-assisted +--- + +# Build an Aspire app with Python and JavaScript + +In this article, you learn how to create a new Aspire application using the Aspire Python template. The template creates a solution with a Python backend (using FastAPI) and a JavaScript frontend (using React), orchestrated by Aspire. This approach is ideal for Python developers who want to build observable, production-ready applications with modern JavaScript frontends. + +> [!NOTE] +> The Aspire Python template is currently under development. This documentation will be updated as the template becomes available. For now, you can follow the guidance in [Orchestrate Python apps in Aspire](build-aspire-apps-with-python.md) to manually add Python applications to an existing Aspire solution. + +> [!TIP] +> If you already have an existing Python application and want to add Aspire to it, see [Orchestrate Python apps in Aspire](build-aspire-apps-with-python.md). + +[!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] + +Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. The sample app in this article requires Python version 3.11 or later. To verify your Python and pip versions, run the following commands: + +```console +python --version +``` + +```console +pip --version +``` + +To download Python (including `pip`), see the [Python download page](https://www.python.org/downloads). + +You also need to install [Node.js](https://nodejs.org/en/download/package-manager) for the JavaScript frontend. To verify your Node.js and npm versions, run the following commands: + +```console +node --version +``` + +```console +npm --version +``` + +To download Node.js (including `npm`), see the [Node.js download page](https://nodejs.org/en/download/package-manager). + +## Create an Aspire project using the Python template + +> [!IMPORTANT] +> The `aspire-python` template is currently being developed and might not be available yet. Once released, you'll be able to create a Python-based Aspire application using the following command. For updates on template availability, see [Aspire Python Templates (issue #11865)](https://github.com/dotnet/aspire/issues/11865). + +To create a new Aspire application with a Python backend and JavaScript frontend, use the `aspire-python` template: + +```dotnetcli +dotnet new aspire-python -o MyPythonApp +``` + +This command creates a new Aspire solution with the following structure: + +- **MyPythonApp.AppHost**: An orchestrator project designed to connect and configure the different projects and services of your app. +- **MyPythonApp.ServiceDefaults**: A shared project to manage configurations that are reused across the projects in your solution related to resilience, service discovery, and telemetry. +- **MyPythonApp.Backend**: A Python backend using FastAPI framework. +- **MyPythonApp.Frontend**: A JavaScript frontend using React framework. + +## Explore the project structure + +Navigate to the newly created project directory: + +```console +cd MyPythonApp +``` + +### Python backend + +The Python backend is located in the _MyPythonApp.Backend_ directory. It uses the FastAPI framework to create RESTful APIs. The backend includes: + +- A virtual environment for Python dependencies +- A _requirements.txt_ file listing required Python packages +- A _main.py_ file containing the FastAPI application code +- OpenTelemetry instrumentation for observability + +### JavaScript frontend + +The JavaScript frontend is located in the _MyPythonApp.Frontend_ directory. It uses React to create the user interface. The frontend includes: + +- A _package.json_ file listing required npm packages +- Source code in the _src_ directory +- Configuration for connecting to the backend API + +### AppHost orchestration + +The AppHost project (_MyPythonApp.AppHost_) orchestrates both the Python backend and JavaScript frontend. It uses the `AddPythonApp` and `AddNpmApp` APIs to configure and run these applications together. + +## Set up the Python environment + +Navigate to the Python backend directory: + +```console +cd MyPythonApp.Backend +``` + +Create and activate a Python virtual environment: + +### [Unix/macOS](#tab/bash) + +```bash +python -m venv .venv +source .venv/bin/activate +``` + +### [Windows](#tab/powershell) + +```powershell +python -m venv .venv +.venv\Scripts\Activate.ps1 +``` + +--- + +Install the Python dependencies: + +```console +python -m pip install --upgrade pip +python -m pip install -r requirements.txt +``` + +## Set up the JavaScript environment + +Navigate to the JavaScript frontend directory: + +```console +cd ../MyPythonApp.Frontend +``` + +Install the npm dependencies: + +```console +npm install +``` + +## Run the application + +Navigate back to the solution root directory: + +```console +cd .. +``` + +Run the AppHost project to start the application: + +```dotnetcli +dotnet run --project MyPythonApp.AppHost/MyPythonApp.AppHost.csproj +``` + +The Aspire dashboard opens in your browser. You should see both the Python backend and JavaScript frontend listed as resources. + +## Explore the Aspire dashboard + +The Aspire dashboard provides a unified view of your application's resources, including: + +- **Resources**: View all running services (Python backend and JavaScript frontend) +- **Logs**: See consolidated logs from all services +- **Traces**: Monitor distributed traces across your application +- **Metrics**: View performance metrics and telemetry data + +Select the **Endpoints** link for each resource to access: + +- The React frontend user interface +- The FastAPI backend API documentation (Swagger UI) + +## Understand telemetry and observability + +The Python backend and JavaScript frontend are both configured with OpenTelemetry for observability. This means: + +- **Logs** from both applications are collected and displayed in the Aspire dashboard +- **Traces** show the flow of requests across services +- **Metrics** provide insights into application performance + +The template includes OpenTelemetry packages configured to export telemetry data to the Aspire dashboard automatically. + +## Next steps + +Now that you have a working Aspire application with Python and JavaScript: + +- Explore the FastAPI backend code and add new API endpoints +- Customize the React frontend to create your user interface +- Add additional services or resources to your AppHost +- Deploy your application to a cloud environment + +## See also + +- [Orchestrate Python apps in Aspire](build-aspire-apps-with-python.md) +- [Orchestrate Node.js apps in Aspire](build-aspire-apps-with-nodejs.md) +- [Aspire templates](../fundamentals/aspire-sdk-templates.md) +- [GitHub: Aspire issue #11865 - Python Templates](https://github.com/dotnet/aspire/issues/11865) diff --git a/docs/toc.yml b/docs/toc.yml index ae30c9bd56..18e24e6bd8 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -53,8 +53,13 @@ items: href: get-started/build-aspire-apps-with-nodejs.md displayName: node.js,node,express,typescript,javascript,spa,client-side,server-side - name: Python apps in Aspire - displayName: python,flask,fastapi - href: get-started/build-aspire-apps-with-python.md + items: + - name: Build an Aspire app with Python and JavaScript + displayName: python,flask,fastapi,react,javascript,template,new project + href: get-started/build-aspire-python-app.md + - name: Orchestrate existing Python apps + displayName: python,flask,fastapi,onboarding,existing,migrate + href: get-started/build-aspire-apps-with-python.md - name: AppHost configuration href: app-host/configuration.md - name: Customize resources From b79c5b30dbb8121ddf111746043aa1aa7fb7ed5a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:39:06 +0000 Subject: [PATCH 03/12] Fix Python version requirement consistency Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- docs/get-started/build-aspire-python-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md index d2cb0c3955..91286c1d9e 100644 --- a/docs/get-started/build-aspire-python-app.md +++ b/docs/get-started/build-aspire-python-app.md @@ -18,7 +18,7 @@ In this article, you learn how to create a new Aspire application using the Aspi [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] -Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. The sample app in this article requires Python version 3.11 or later. To verify your Python and pip versions, run the following commands: +Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. This article requires Python version 3.12 or later. To verify your Python and pip versions, run the following commands: ```console python --version From 70d2439a3876319b46b3480fd89bac650267e1ce Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:50:51 +0000 Subject: [PATCH 04/12] Update Python template docs to use Aspire CLI and correct template structure Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- docs/fundamentals/aspire-sdk-templates.md | 27 ++++--- docs/get-started/build-aspire-python-app.md | 83 +++++++++++---------- 2 files changed, 56 insertions(+), 54 deletions(-) diff --git a/docs/fundamentals/aspire-sdk-templates.md b/docs/fundamentals/aspire-sdk-templates.md index 428b111421..89f8f92ef4 100644 --- a/docs/fundamentals/aspire-sdk-templates.md +++ b/docs/fundamentals/aspire-sdk-templates.md @@ -39,12 +39,11 @@ The following Aspire solution templates are available, assume the solution is na -- **Aspire Python App**: A full-stack Aspire application with a Python backend and JavaScript frontend. This template includes: +- **Aspire Python App**: A full-stack Aspire application with a Python backend and JavaScript frontend. This template uses a file-based AppHost and includes: - - [**AspireSample.AppHost**](#app-host): An orchestrator project to connect and configure services. - - [**AspireSample.ServiceDefaults**](#service-defaults): A shared project for common configurations. - - **AspireSample.Backend**: A Python backend using FastAPI framework with OpenTelemetry instrumentation. - - **AspireSample.Frontend**: A JavaScript frontend using React framework. + - **apphost.cs**: A file-based AppHost that orchestrates the Python backend and JavaScript frontend. + - **app**: A Python backend using [FastAPI](https://fastapi.tiangolo.com/) framework with OpenTelemetry instrumentation. + - **frontend**: A JavaScript frontend using [React](https://react.dev/) framework with Vite. > [!NOTE] > The Aspire Python template is currently under development. For more information and updates, see [GitHub: Aspire issue #11865](https://github.com/dotnet/aspire/issues/11865). For now, you can manually add Python applications to an existing Aspire solution using the guidance in [Orchestrate Python apps in Aspire](../get-started/build-aspire-apps-with-python.md). @@ -108,30 +107,30 @@ To create an Aspire solution or project using the .NET CLI, use the [dotnet new] To create a basic [Aspire AppHost](app-host-overview.md) project targeting the latest .NET version: -```dotnetcli -dotnet new aspire-apphost +```Aspire +aspire new aspire-apphost ``` To create an Aspire starter app, which is a full solution with a sample UI and backing API included: -```dotnetcli -dotnet new aspire-starter +```Aspire +aspire new aspire-starter ``` To create an Aspire app with a Python backend and JavaScript frontend: -```dotnetcli -dotnet new aspire-python +```Aspire +aspire new aspire-py-starter ``` > [!NOTE] -> The `aspire-python` template is currently under development. For more information, see [Build an Aspire app with Python and JavaScript](../get-started/build-aspire-python-app.md). +> The `aspire-py-starter` template is currently under development. For more information, see [Build an Aspire app with Python and JavaScript](../get-started/build-aspire-python-app.md). > [!TIP] > Aspire templates default to using the latest .NET version, even when using an earlier version of the .NET CLI. To manually specify the .NET version, use the `--framework ` option, for example to create a basic [Aspire AppHost](app-host-overview.md) project targeting .NET 8: > -> ```dotnetcli -> dotnet new aspire-apphost --framework net8.0 +> ```Aspire +> aspire new aspire-apphost --framework net8.0 > ``` You need to trust the ASP.NET Core :::no-loc text="localhost"::: certificate before running the app. Run the following command: diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md index 91286c1d9e..290cea4cb1 100644 --- a/docs/get-started/build-aspire-python-app.md +++ b/docs/get-started/build-aspire-python-app.md @@ -8,7 +8,7 @@ ai-usage: ai-assisted # Build an Aspire app with Python and JavaScript -In this article, you learn how to create a new Aspire application using the Aspire Python template. The template creates a solution with a Python backend (using FastAPI) and a JavaScript frontend (using React), orchestrated by Aspire. This approach is ideal for Python developers who want to build observable, production-ready applications with modern JavaScript frontends. +In this article, you learn how to create a new Aspire application using the Aspire Python template. The template creates a solution with a Python backend (using [FastAPI](https://fastapi.tiangolo.com/)) and a JavaScript frontend (using [React](https://react.dev/)), orchestrated by Aspire. This approach is ideal for Python developers who want to build observable, production-ready applications with modern JavaScript frontends. > [!NOTE] > The Aspire Python template is currently under development. This documentation will be updated as the template becomes available. For now, you can follow the guidance in [Orchestrate Python apps in Aspire](build-aspire-apps-with-python.md) to manually add Python applications to an existing Aspire solution. @@ -45,20 +45,19 @@ To download Node.js (including `npm`), see the [Node.js download page](https://n ## Create an Aspire project using the Python template > [!IMPORTANT] -> The `aspire-python` template is currently being developed and might not be available yet. Once released, you'll be able to create a Python-based Aspire application using the following command. For updates on template availability, see [Aspire Python Templates (issue #11865)](https://github.com/dotnet/aspire/issues/11865). +> The `aspire-py-starter` template is currently being developed and might not be available yet. Once released, you'll be able to create a Python-based Aspire application using the following command. For updates on template availability, see [Aspire Python Templates (issue #11865)](https://github.com/dotnet/aspire/issues/11865). -To create a new Aspire application with a Python backend and JavaScript frontend, use the `aspire-python` template: +To create a new Aspire application with a Python backend and JavaScript frontend, use the `aspire-py-starter` template: -```dotnetcli -dotnet new aspire-python -o MyPythonApp +```Aspire +aspire new aspire-py-starter ``` This command creates a new Aspire solution with the following structure: -- **MyPythonApp.AppHost**: An orchestrator project designed to connect and configure the different projects and services of your app. -- **MyPythonApp.ServiceDefaults**: A shared project to manage configurations that are reused across the projects in your solution related to resilience, service discovery, and telemetry. -- **MyPythonApp.Backend**: A Python backend using FastAPI framework. -- **MyPythonApp.Frontend**: A JavaScript frontend using React framework. +- **apphost.cs**: A file-based AppHost that orchestrates the Python backend and JavaScript frontend. +- **app**: A Python backend using [FastAPI](https://fastapi.tiangolo.com/) framework. +- **frontend**: A JavaScript frontend using [React](https://react.dev/) framework with Vite. ## Explore the project structure @@ -68,33 +67,37 @@ Navigate to the newly created project directory: cd MyPythonApp ``` -### Python backend +### File-based AppHost -The Python backend is located in the _MyPythonApp.Backend_ directory. It uses the FastAPI framework to create RESTful APIs. The backend includes: +The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddPythonScript` to add the Python backend and `AddViteApp` to add the React frontend. -- A virtual environment for Python dependencies -- A _requirements.txt_ file listing required Python packages -- A _main.py_ file containing the FastAPI application code -- OpenTelemetry instrumentation for observability +### File-based AppHost -### JavaScript frontend +The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddPythonScript` to add the Python backend and `AddViteApp` to add the React frontend. + +### Python backend + +The Python backend is located in the _app_ directory. It uses the [FastAPI](https://fastapi.tiangolo.com/) framework to create RESTful APIs. The backend includes: -The JavaScript frontend is located in the _MyPythonApp.Frontend_ directory. It uses React to create the user interface. The frontend includes: +- A virtual environment for Python dependencies. +- A _requirements.txt_ file listing required Python packages. +- An _app.py_ file containing the FastAPI application code. +- OpenTelemetry instrumentation for observability. -- A _package.json_ file listing required npm packages -- Source code in the _src_ directory -- Configuration for connecting to the backend API +### JavaScript frontend -### AppHost orchestration +The JavaScript frontend is located in the _frontend_ directory. It uses [React](https://react.dev/) with Vite to create the user interface. The frontend includes: -The AppHost project (_MyPythonApp.AppHost_) orchestrates both the Python backend and JavaScript frontend. It uses the `AddPythonApp` and `AddNpmApp` APIs to configure and run these applications together. +- A _package.json_ file listing required npm packages. +- Source code in the _src_ directory. +- Configuration for connecting to the backend API. ## Set up the Python environment Navigate to the Python backend directory: ```console -cd MyPythonApp.Backend +cd app ``` Create and activate a Python virtual environment: @@ -127,7 +130,7 @@ python -m pip install -r requirements.txt Navigate to the JavaScript frontend directory: ```console -cd ../MyPythonApp.Frontend +cd ../frontend ``` Install the npm dependencies: @@ -144,10 +147,10 @@ Navigate back to the solution root directory: cd .. ``` -Run the AppHost project to start the application: +Run the AppHost to start the application: -```dotnetcli -dotnet run --project MyPythonApp.AppHost/MyPythonApp.AppHost.csproj +```Aspire +aspire run ``` The Aspire dashboard opens in your browser. You should see both the Python backend and JavaScript frontend listed as resources. @@ -156,23 +159,23 @@ The Aspire dashboard opens in your browser. You should see both the Python backe The Aspire dashboard provides a unified view of your application's resources, including: -- **Resources**: View all running services (Python backend and JavaScript frontend) -- **Logs**: See consolidated logs from all services -- **Traces**: Monitor distributed traces across your application -- **Metrics**: View performance metrics and telemetry data +- **Resources**: View all running services (Python backend and JavaScript frontend). +- **Logs**: See consolidated logs from all services. +- **Traces**: Monitor distributed traces across your application. +- **Metrics**: View performance metrics and telemetry data. Select the **Endpoints** link for each resource to access: -- The React frontend user interface -- The FastAPI backend API documentation (Swagger UI) +- The React frontend user interface. +- The FastAPI backend API documentation (Swagger UI). ## Understand telemetry and observability The Python backend and JavaScript frontend are both configured with OpenTelemetry for observability. This means: -- **Logs** from both applications are collected and displayed in the Aspire dashboard -- **Traces** show the flow of requests across services -- **Metrics** provide insights into application performance +- **Logs** from both applications are collected and displayed in the Aspire dashboard. +- **Traces** show the flow of requests across services. +- **Metrics** provide insights into application performance. The template includes OpenTelemetry packages configured to export telemetry data to the Aspire dashboard automatically. @@ -180,10 +183,10 @@ The template includes OpenTelemetry packages configured to export telemetry data Now that you have a working Aspire application with Python and JavaScript: -- Explore the FastAPI backend code and add new API endpoints -- Customize the React frontend to create your user interface -- Add additional services or resources to your AppHost -- Deploy your application to a cloud environment +- Explore the FastAPI backend code and add new API endpoints. +- Customize the React frontend to create your user interface. +- Add additional services or resources to your AppHost. +- Deploy your application to a cloud environment. ## See also From d35361e1b8677887c4ff390cad1a0a26b744a6f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:52:37 +0000 Subject: [PATCH 05/12] Remove duplicate File-based AppHost section Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- docs/get-started/build-aspire-python-app.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md index 290cea4cb1..553c72eec7 100644 --- a/docs/get-started/build-aspire-python-app.md +++ b/docs/get-started/build-aspire-python-app.md @@ -71,10 +71,6 @@ cd MyPythonApp The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddPythonScript` to add the Python backend and `AddViteApp` to add the React frontend. -### File-based AppHost - -The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddPythonScript` to add the Python backend and `AddViteApp` to add the React frontend. - ### Python backend The Python backend is located in the _app_ directory. It uses the [FastAPI](https://fastapi.tiangolo.com/) framework to create RESTful APIs. The backend includes: From 718554a792b06e8d3355fee438208108188da2d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 16:09:10 +0000 Subject: [PATCH 06/12] Apply all suggestions from @alistairmatthews review Co-authored-by: alistairmatthews <41286777+alistairmatthews@users.noreply.github.com> --- docs/fundamentals/aspire-sdk-templates.md | 14 +++--- .../build-aspire-apps-with-python.md | 47 ++++++++++--------- docs/get-started/build-aspire-python-app.md | 24 +++++++--- 3 files changed, 49 insertions(+), 36 deletions(-) diff --git a/docs/fundamentals/aspire-sdk-templates.md b/docs/fundamentals/aspire-sdk-templates.md index 89f8f92ef4..60d44ced3f 100644 --- a/docs/fundamentals/aspire-sdk-templates.md +++ b/docs/fundamentals/aspire-sdk-templates.md @@ -39,11 +39,11 @@ The following Aspire solution templates are available, assume the solution is na -- **Aspire Python App**: A full-stack Aspire application with a Python backend and JavaScript frontend. This template uses a file-based AppHost and includes: +- **Aspire Python App**: A full-stack Aspire application with a Python backend and a JavaScript frontend. This template uses a file-based AppHost and includes: - - **apphost.cs**: A file-based AppHost that orchestrates the Python backend and JavaScript frontend. - - **app**: A Python backend using [FastAPI](https://fastapi.tiangolo.com/) framework with OpenTelemetry instrumentation. - - **frontend**: A JavaScript frontend using [React](https://react.dev/) framework with Vite. + - **apphost.cs**: A file-based AppHost that orchestrates the Python backend and the JavaScript frontend. It also includes a Redis cache in the solution. + - **app**: A Python backend that uses the [FastAPI](https://fastapi.tiangolo.com/) framework with OpenTelemetry instrumentation. + - **frontend**: A JavaScript frontend using the [React](https://react.dev/) framework with [Vite](https://vite.dev). > [!NOTE] > The Aspire Python template is currently under development. For more information and updates, see [GitHub: Aspire issue #11865](https://github.com/dotnet/aspire/issues/11865). For now, you can manually add Python applications to an existing Aspire solution using the guidance in [Orchestrate Python apps in Aspire](../get-started/build-aspire-apps-with-python.md). @@ -127,10 +127,10 @@ aspire new aspire-py-starter > The `aspire-py-starter` template is currently under development. For more information, see [Build an Aspire app with Python and JavaScript](../get-started/build-aspire-python-app.md). > [!TIP] -> Aspire templates default to using the latest .NET version, even when using an earlier version of the .NET CLI. To manually specify the .NET version, use the `--framework ` option, for example to create a basic [Aspire AppHost](app-host-overview.md) project targeting .NET 8: +> Aspire templates default to using the latest .NET version. To manually specify the .NET version, use the .NET CLI with the `--framework ` option, for example to create a basic [Aspire AppHost](app-host-overview.md) project targeting .NET 8: > -> ```Aspire -> aspire new aspire-apphost --framework net8.0 +> ```dotnetcli +> dotnet new aspire-apphost --framework net8.0 > ``` You need to trust the ASP.NET Core :::no-loc text="localhost"::: certificate before running the app. Run the following command: diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index acb7ecfa54..88ded3ee3f 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -1,19 +1,21 @@ --- title: Orchestrate Python apps in Aspire -description: Learn how to integrate existing Python apps into an Aspire AppHost project. +description: Learn how to integrate existing Python apps into an Aspire solution. ms.date: 10/17/2025 ms.custom: sfi-image-nochange --- # Orchestrate Python apps in Aspire -In this article, you learn how to add existing Python applications to an Aspire solution. This approach is ideal when you have an existing Python codebase and want to add Aspire orchestration and observability capabilities to it. The sample app in this article demonstrates launching a Python application with Flask. The Python extension for Aspire requires the use of virtual environments. +In this article, you learn how to add existing Python applications to an Aspire solution. This approach is ideal when you have an existing Python codebase and want to add Aspire orchestration and observability to it. The sample app in this article demonstrates launching a Python application with [Flask](https://flask.palletsprojects.com/en/stable/). The Python extension for Aspire requires the use of virtual environments. > [!TIP] > If you're starting a new project from scratch, consider using the Aspire Python template instead. See [Build an Aspire app with Python and JavaScript](build-aspire-python-app.md) for more information. [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] +This tutorial also assumes that you have installed the Aspire CLI. For further instructions, see [Install Aspire CLI](../cli/install.md). + Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. The sample app in this article was built with Python version 3.12.4 and pip version 24.1.2. To verify your Python and pip versions, run the following commands: ```console @@ -205,34 +207,34 @@ If you have an existing Python application that you want to add to Aspire, here Aspire works with various Python web frameworks. The most common ones include: -- **Flask**: A lightweight WSGI web application framework -- **FastAPI**: A modern, fast web framework for building APIs with Python -- **Django**: A high-level web framework that encourages rapid development +- **[Flask](https://flask.palletsprojects.com/en/stable/)**: A lightweight WSGI web application framework. +- **[FastAPI](https://fastapi.tiangolo.com/)**: A modern, fast web framework for building APIs with Python. +- **[Django](https://www.djangoproject.com/)**: A high-level web framework that encourages rapid development. The integration process is similar across frameworks: -1. Ensure your application can read configuration from environment variables -1. Add OpenTelemetry instrumentation for observability -1. Use the `AddPythonApp` API in your AppHost to orchestrate the application +1. Ensure your application can read configuration from environment variables. +1. Add OpenTelemetry instrumentation for observability. +1. Use the `AddPythonApp` API in your AppHost to orchestrate the application. ### Migration tips When migrating an existing Python application to Aspire: -1. **Virtual environments**: Ensure your application uses a virtual environment (`.venv` directory) -1. **Dependencies**: List all dependencies in a `requirements.txt` file -1. **Configuration**: Use environment variables for configuration instead of hardcoded values -1. **Port binding**: Make your application read the port from an environment variable (commonly `PORT`) -1. **Logging**: Configure logging to work with OpenTelemetry for better observability +1. **Virtual environments**: Ensure your application uses a virtual environment (`.venv` directory). +1. **Dependencies**: List all dependencies in a `requirements.txt` file. +1. **Configuration**: Use environment variables for configuration instead of hardcoded values. +1. **Port binding**: Make your application read the port from an environment variable (commonly `PORT`). +1. **Logging**: Configure logging to work with OpenTelemetry for better observability. ### Common pitfalls Be aware of these common issues when onboarding Python apps: -- **Certificate issues**: When running locally, you might need to set `ASPIRE_ALLOW_UNSECURED_TRANSPORT=true` in your AppHost launch settings -- **Path issues**: Ensure the path to your Python entry point file is correct relative to the AppHost project -- **Virtual environment activation**: The `AddPythonApp` API handles virtual environment activation automatically—you don't need to activate it manually -- **Python version compatibility**: Ensure your Python version is compatible with the packages you're using +- **Certificate issues**: When running locally, you might need to set `ASPIRE_ALLOW_UNSECURED_TRANSPORT=true` in your AppHost launch settings. +- **Path issues**: Ensure the path to your Python entry point file is correct relative to the AppHost project. +- **Virtual environment activation**: The `AddPythonApp` API handles virtual environment activation automatically—you don't need to activate it manually. +- **Python version compatibility**: Ensure your Python version is compatible with the packages you're using. ### Multiple Python services @@ -253,12 +255,11 @@ builder.Build().Run(); In this article, you learned how to integrate existing Python applications into an Aspire solution. You learned how to: -- Create an Aspire AppHost project -- Prepare a Python application with a virtual environment -- Install the Python hosting package -- Use the `AddPythonApp` API to orchestrate Python apps -- Add OpenTelemetry for observability -- Handle common pitfalls and best practices for migrating existing Python apps +- Prepare a Python application with a virtual environment. +- Install the Aspire Python hosting package. +- Use the `AddPythonApp` API in the AppHost to orchestrate Python apps. +- Add OpenTelemetry for observability. +- Handle common pitfalls and best practices for migrating existing Python apps. ## See also diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md index 553c72eec7..3b9d0b9551 100644 --- a/docs/get-started/build-aspire-python-app.md +++ b/docs/get-started/build-aspire-python-app.md @@ -18,6 +18,8 @@ In this article, you learn how to create a new Aspire application using the Aspi [!INCLUDE [aspire-prereqs](../includes/aspire-prereqs.md)] +This tutorial also assumes that you have installed the Aspire CLI. For further instructions, see [Install Aspire CLI](../cli/install.md). + Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. This article requires Python version 3.12 or later. To verify your Python and pip versions, run the following commands: ```console @@ -45,13 +47,23 @@ To download Node.js (including `npm`), see the [Node.js download page](https://n ## Create an Aspire project using the Python template > [!IMPORTANT] -> The `aspire-py-starter` template is currently being developed and might not be available yet. Once released, you'll be able to create a Python-based Aspire application using the following command. For updates on template availability, see [Aspire Python Templates (issue #11865)](https://github.com/dotnet/aspire/issues/11865). +> The `aspire-py-starter` template is currently being developed. Once it's released, you'll be able to create a Python-based Aspire application using the following command. For updates on template availability, see [Aspire Python Templates (issue #11865)](https://github.com/dotnet/aspire/issues/11865). To create a new Aspire application with a Python backend and JavaScript frontend, use the `aspire-py-starter` template: -```Aspire -aspire new aspire-py-starter -``` +1. Execute the following command + + ```Aspire + aspire new aspire-py-starter + ``` + +1. For the project name, type **MyPythonApp**, and then press Enter. +1. To accept the default output path, press Enter. +1. To select the default template version, press Enter. +1. When asked whether to use a Redis cache, select **No** and then press Enter. +1. When asked whether to create a test project, select **No** and then press Enter. + +The Aspire CLI creates the new solution. This command creates a new Aspire solution with the following structure: @@ -69,7 +81,7 @@ cd MyPythonApp ### File-based AppHost -The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddPythonScript` to add the Python backend and `AddViteApp` to add the React frontend. +The solution uses a file-based AppHost with a single _apphost.cs_ file. This file contains the orchestration logic for both the Python backend and JavaScript frontend. The AppHost uses `AddUvicornApp` to add the backend and `AddViteApp` to add the React frontend. ### Python backend @@ -82,7 +94,7 @@ The Python backend is located in the _app_ directory. It uses the [FastAPI](http ### JavaScript frontend -The JavaScript frontend is located in the _frontend_ directory. It uses [React](https://react.dev/) with Vite to create the user interface. The frontend includes: +The JavaScript frontend is located in the _frontend_ directory. It uses [React](https://react.dev/) with [Vite](https://vite.dev/) to create the user interface. The frontend includes: - A _package.json_ file listing required npm packages. - Source code in the _src_ directory. From 32143c80dc19fd331c2d047348cdf9aba074d3a6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:11:03 +0000 Subject: [PATCH 07/12] Change .NET CLI commands to Aspire CLI in build-aspire-apps-with-python.md Co-authored-by: alistairmatthews <41286777+alistairmatthews@users.noreply.github.com> --- docs/get-started/build-aspire-apps-with-python.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index 88ded3ee3f..1c62524741 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -32,8 +32,8 @@ To download Python (including `pip`), see the [Python download page](https://www To get started launching a Python project in Aspire, use the starter template to first create an Aspire application host: -```dotnetcli -dotnet new aspire -o PythonSample +```Aspire +aspire new aspire -o PythonSample ``` In the same terminal session, change directories into the newly created project: @@ -44,8 +44,8 @@ cd PythonSample After the template is created, launch the AppHost with the following command to ensure that the AppHost and the [Aspire dashboard](../fundamentals/dashboard/overview.md) run successfully: -```dotnetcli -dotnet run --project ./PythonSample.AppHost/PythonSample.AppHost.csproj +```Aspire +aspire run ``` If the Aspire Dashboard doesn't open, open it with the link in the console output. At this point the dashboard won't show any resources. Stop the AppHost by pressing Ctrl + C in the terminal. @@ -134,7 +134,7 @@ The preceding code creates a simple Flask app that listens on port 8111 and retu Install the Python hosting package by running the following command: ```dotnetcli -dotnet add ../PythonSample.AppHost/PythonSample.AppHost.csproj package Aspire.Hosting.Python --version 9.0.0 +dotnet add package Aspire.Hosting.Python --version 9.0.0 ``` After the package is installed, the project XML should have a new package reference similar to the following example: @@ -152,8 +152,8 @@ Replace the _AppHost.cs_ code with the following snippet. This code adds the Pyt Now that you've added the Python hosting package, updated the _AppHost.cs_ file, and created a Python project, you can run the AppHost: -```dotnetcli -dotnet run --project ../PythonSample.AppHost/PythonSample.AppHost.csproj +```Aspire +aspire run ``` Launch the dashboard by clicking the link in the console output. The dashboard should display the Python project as a resource. From 362b7c299a5a5e5c825c5c70bdb55d725bd1e4ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:25:39 +0000 Subject: [PATCH 08/12] Replace CLI commands with interactive Aspire CLI steps Co-authored-by: alistairmatthews <41286777+alistairmatthews@users.noreply.github.com> --- .../build-aspire-apps-with-python.md | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index 1c62524741..1527d20b03 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -32,9 +32,20 @@ To download Python (including `pip`), see the [Python download page](https://www To get started launching a Python project in Aspire, use the starter template to first create an Aspire application host: -```Aspire -aspire new aspire -o PythonSample -``` +1. Use the following Aspire CLI command: + + ```Aspire + aspire new + ``` + +1. To select the **Starter template**, press Enter. +1. For the **project name** type **PythonSample** and then press Enter. +1. For the output path, press Enter to accept the default. +1. To choose the default template version, press Enter. +1. For **Use Redis Cache**, choose **No**. +1. For **Do you want to create a test project?**, choose **No**. + +The Aspire CLI fetches the correct template and uses it to create a new Aspire solution in the **PythonSample** folder. In the same terminal session, change directories into the newly created project: @@ -133,10 +144,12 @@ The preceding code creates a simple Flask app that listens on port 8111 and retu Install the Python hosting package by running the following command: -```dotnetcli -dotnet add package Aspire.Hosting.Python --version 9.0.0 +```Aspire +aspire add ``` +Use the arrow keys to select the **python (Aspire.Hosting.Python)** hosting integration and then press Enter. Then press Enter again to select the default version. The Aspire CLI adds the Python hosting integration to the Aspire AppHost project. + After the package is installed, the project XML should have a new package reference similar to the following example: :::code language="xml" source="snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj" highlight="15"::: From ea3142ee795251e805626f091d8c18853313d43d Mon Sep 17 00:00:00 2001 From: AJ Matthews Date: Wed, 29 Oct 2025 16:04:20 +0000 Subject: [PATCH 09/12] Integrated feedback from @davidfowl. --- docs/fundamentals/aspire-sdk-templates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/fundamentals/aspire-sdk-templates.md b/docs/fundamentals/aspire-sdk-templates.md index 60d44ced3f..28be4d105b 100644 --- a/docs/fundamentals/aspire-sdk-templates.md +++ b/docs/fundamentals/aspire-sdk-templates.md @@ -45,8 +45,8 @@ The following Aspire solution templates are available, assume the solution is na - **app**: A Python backend that uses the [FastAPI](https://fastapi.tiangolo.com/) framework with OpenTelemetry instrumentation. - **frontend**: A JavaScript frontend using the [React](https://react.dev/) framework with [Vite](https://vite.dev). - > [!NOTE] - > The Aspire Python template is currently under development. For more information and updates, see [GitHub: Aspire issue #11865](https://github.com/dotnet/aspire/issues/11865). For now, you can manually add Python applications to an existing Aspire solution using the guidance in [Orchestrate Python apps in Aspire](../get-started/build-aspire-apps-with-python.md). +> [!NOTE] +> You can't yet use the Aspire Python App template in Visual Studio. ### Project templates From 8f9dd7f3de09cc5b80572c07dbb01dae4d242164 Mon Sep 17 00:00:00 2001 From: AJ Matthews Date: Wed, 29 Oct 2025 16:20:57 +0000 Subject: [PATCH 10/12] Added an aspire run screenshot and updated another. --- .../build-aspire-apps-with-python.md | 6 +++++- .../media/aspire-run-access-dashboard.png | Bin 0 -> 46533 bytes docs/get-started/media/python-dashboard.png | Bin 37570 -> 78543 bytes 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/get-started/media/aspire-run-access-dashboard.png diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index 1527d20b03..6f1176a70c 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -59,7 +59,11 @@ After the template is created, launch the AppHost with the following command to aspire run ``` -If the Aspire Dashboard doesn't open, open it with the link in the console output. At this point the dashboard won't show any resources. Stop the AppHost by pressing Ctrl + C in the terminal. +The Aspire CLI runs the solution and displays some information about it. To access the Aspire dashboard, hold down CTRL and then select the **Dashboard** URL. + +:::image source="media/aspire-run-access-dashboard.png" lightbox="media/aspire-run-access-dashboard.png" alt-text="Screenshot showing how to access the Aspire dashboard from the output of the Aspire CLI."::: + +At this point the dashboard won't show any resources. Stop the AppHost by pressing Ctrl + C in the terminal. ## Prepare a Python app diff --git a/docs/get-started/media/aspire-run-access-dashboard.png b/docs/get-started/media/aspire-run-access-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..c6390e73c2dad8c97375d56473cff371e7b78a11 GIT binary patch literal 46533 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 Cfn3!9 literal 0 HcmV?d00001 diff --git a/docs/get-started/media/python-dashboard.png b/docs/get-started/media/python-dashboard.png index 5d68a57f249a3f172c5dbdff60077334d4f5a61a..ab639fb404a85c4fe1de6e84881d18aa676c3076 100644 GIT binary patch literal 78543 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 Twox+*TrqgM`njxgN@xNAu-X>q literal 37570 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 bg Date: Wed, 29 Oct 2025 16:26:05 +0000 Subject: [PATCH 11/12] A couple of small corrections. --- docs/get-started/build-aspire-apps-with-python.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/get-started/build-aspire-apps-with-python.md b/docs/get-started/build-aspire-apps-with-python.md index 6f1176a70c..8fab2e3f51 100644 --- a/docs/get-started/build-aspire-apps-with-python.md +++ b/docs/get-started/build-aspire-apps-with-python.md @@ -160,7 +160,7 @@ After the package is installed, the project XML should have a new package refere Replace the _AppHost.cs_ code with the following snippet. This code adds the Python project to Aspire by calling the `AddPythonApp` API and specifying the project name, project path, and the entry point file: -:::code source="snippets/PythonSample/PythonSample.AppHost/AppHost.cs" highlight="6"::: +:::code source="snippets/PythonSample/PythonSample.AppHost/AppHost.cs" highlight="5-15"::: > [!IMPORTANT] > The preceding code suppresses the `ASPIREHOSTINGPYTHON001` diagnostic error. This error is generated because the `AddPythonApp` API is experimental and might change in future release. For more information, see [Compiler Error ASPIREHOSTINGPYTHON001](../diagnostics/aspirehostingpython001.md). @@ -177,7 +177,7 @@ Launch the dashboard by clicking the link in the console output. The dashboard s :::image source="media/python-dashboard.png" lightbox="media/python-dashboard.png" alt-text="Aspire dashboard: Python sample app."::: -Select the **Endpoints** link to open the `hello-python` endpoint in a new browser tab. The browser should display the message "Hello, World!": +Select the **URLs** link to open the `hello-python` endpoint in a new browser tab. The browser should display the message "Hello, World!": :::image source="media/python-hello-world.png" lightbox="media/python-hello-world.png" alt-text="Aspire dashboard: Python sample app endpoint."::: From 75a6d9c863034792286cec53057285473c6ee204 Mon Sep 17 00:00:00 2001 From: Alistair Matthews Date: Thu, 30 Oct 2025 15:03:19 +0000 Subject: [PATCH 12/12] Update docs/get-started/build-aspire-python-app.md --- docs/get-started/build-aspire-python-app.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/get-started/build-aspire-python-app.md b/docs/get-started/build-aspire-python-app.md index 3b9d0b9551..7b0719aa98 100644 --- a/docs/get-started/build-aspire-python-app.md +++ b/docs/get-started/build-aspire-python-app.md @@ -20,6 +20,8 @@ In this article, you learn how to create a new Aspire application using the Aspi This tutorial also assumes that you have installed the Aspire CLI. For further instructions, see [Install Aspire CLI](../cli/install.md). +This tutorial also assumes that you have installed the Aspire CLI. For further instructions, see [Install Aspire CLI](../cli/install.md). + Additionally, you need to install [Python](https://www.python.org/downloads) on your machine. This article requires Python version 3.12 or later. To verify your Python and pip versions, run the following commands: ```console