aspire

Par github · awesome-copilot

Skill Aspire couvrant la CLI Aspire, l'orchestration AppHost, la découverte de services, les intégrations, le serveur MCP, l'extension VS Code, les Dev Containers, GitHub Codespaces, les templates, le tableau de bord et le déploiement. À utiliser lorsque l'utilisateur souhaite créer, exécuter, déboguer, configurer, déployer ou dépanner une application distribuée Aspire.

npx skills add https://github.com/github/awesome-copilot --skill aspire

Aspire — Orchestration d'applications distribuées polyglotte

Aspire est une chaîne d'outils polyglotte, code-first pour construire des applications distribuées observables et prêtes pour la production. Elle orchestre des conteneurs, des exécutables et des ressources cloud à partir d'un seul projet AppHost — que les charges de travail soient en C#, Python, JavaScript/TypeScript, Go, Java, Rust, Bun, Deno ou PowerShell.

Modèle mental : L'AppHost est un chef d'orchestre — il ne joue pas des instruments, il indique à chaque service quand démarrer, comment se trouver les uns les autres, et surveille les problèmes.

Le matériel de référence détaillé se trouve dans le dossier references/ — chargez à la demande.


Références

Référence Quand charger
CLI Reference Drapeaux de commande, options ou utilisation détaillée
MCP Server Configuration du MCP pour les assistants IA, outils disponibles
Integrations Catalog Découvrir les intégrations via les outils MCP, motifs de câblage
Polyglot APIs Signatures de méthode, options de chaînage, motifs spécifiques aux langages
Architecture Internals de DCP, modèle de ressource, découverte de services, réseautage, télémétrie
Dashboard Fonctionnalités du tableau de bord, mode autonome, GenAI Visualizer
Deployment Docker, Kubernetes, Azure Container Apps, App Service
Testing Tests d'intégration contre l'AppHost
Troubleshooting Codes de diagnostic, erreurs courantes et correctifs

1. Recherche dans la documentation Aspire

L'équipe Aspire fournit un serveur MCP qui met à disposition des outils de documentation directement dans votre assistant IA. Voir MCP Server pour les détails de configuration.

Aspire CLI 13.2+ (recommandé — dispose de la recherche de docs intégrée)

Si vous exécutez Aspire CLI 13.2 ou ultérieur (aspire --version), le serveur MCP inclut les outils de recherche de docs :

Outil Description
list_docs Liste toute la documentation disponible depuis aspire.dev
search_docs Effectue une recherche lexicale pondérée sur la documentation indexée
get_doc Récupère un document spécifique par son slug

Ces outils ont été ajoutés dans PR #14028. Pour mettre à jour : aspire update --self --channel daily.

Pour en savoir plus sur cette approche, consultez le post de David Pine : https://davidpine.dev/posts/aspire-docs-mcp-tools/

Aspire CLI 13.1 (outils d'intégration uniquement)

Sur 13.1, le serveur MCP fournit la recherche d'intégration mais pas la recherche de docs :

Outil Description
list_integrations Liste les intégrations d'hébergement Aspire disponibles
get_integration_docs Obtient la documentation pour un package d'intégration spécifique

Pour les requêtes de docs générales sur 13.1, utilisez Context7 comme source principale (voir ci-dessous).

Fallback : Context7

Utilisez Context7 (mcp_context7) quand les outils MCP de docs Aspire ne sont pas disponibles (13.1) ou que le serveur MCP n'est pas en cours d'exécution :

Étape 1 — Résoudre l'ID de la bibliothèque (une fois par session) :

Appelez mcp_context7_resolve-library-id avec libraryName: ".NET Aspire".

Rang ID de bibliothèque Utiliser quand
1 /microsoft/aspire.dev Source principale. Guides, intégrations, référence CLI, déploiement.
2 /dotnet/aspire API internals, détails de mise en œuvre au niveau du code source.
3 /communitytoolkit/aspire Intégrations polyglotte non-Microsoft (Go, Java, Node.js, Ollama).

Étape 2 — Requête docs :

libraryId: "/microsoft/aspire.dev", query: "Python integration AddPythonApp service discovery"
libraryId: "/communitytoolkit/aspire", query: "Golang Java Node.js community integrations"

Fallback : Recherche GitHub (quand Context7 n'est aussi pas disponible)

Recherchez dans le référentiel de docs officiel sur GitHub :

  • Docs repo : microsoft/aspire.dev — chemin : src/frontend/src/content/docs/
  • Source repo : dotnet/aspire
  • Samples repo : dotnet/aspire-samples
  • Community integrations : CommunityToolkit/Aspire

2. Prérequis et installation

Prérequis Détails
.NET SDK 10.0+ (obligatoire même pour les charges de travail non-.NET — l'AppHost est .NET)
Container runtime Docker Desktop, Podman ou Rancher Desktop
IDE (optionnel) VS Code + C# Dev Kit, Visual Studio 2022, JetBrains Rider
# Linux / macOS
curl -sSL https://aspire.dev/install.sh | bash

# Windows PowerShell
irm https://aspire.dev/install.ps1 | iex

# Vérifier
aspire --version

# Installer les templates
dotnet new install Aspire.ProjectTemplates

3. Templates de projet

Template Commande Description
aspire-starter aspire new aspire-starter Starter ASP.NET Core/Blazor + AppHost + tests
aspire-ts-cs-starter aspire new aspire-ts-cs-starter Starter ASP.NET Core/React + AppHost
aspire-py-starter aspire new aspire-py-starter Starter FastAPI/React + AppHost
aspire-apphost-singlefile aspire new aspire-apphost-singlefile AppHost vide monofichier

4. Quick Start AppHost (Polyglotte)

L'AppHost orchestre tous les services. Les charges de travail non-.NET s'exécutent en tant que conteneurs ou exécutables.

var builder = DistributedApplication.CreateBuilder(args);

// Infrastructure
var redis = builder.AddRedis("cache");
var postgres = builder.AddPostgres("pg").AddDatabase("catalog");

// API .NET
var api = builder.AddProject<Projects.CatalogApi>("api")
    .WithReference(postgres).WithReference(redis);

// Service ML Python
var ml = builder.AddPythonApp("ml-service", "../ml-service", "main.py")
    .WithHttpEndpoint(targetPort: 8000).WithReference(redis);

// Frontend React (Vite)
var web = builder.AddViteApp("web", "../frontend")
    .WithHttpEndpoint(targetPort: 5173).WithReference(api);

// Worker Go
var worker = builder.AddGolangApp("worker", "../go-worker")
    .WithReference(redis);

builder.Build().Run();

Pour les signatures d'API complètes, voir Polyglot APIs.


5. Concepts clés (résumé)

Concept Point clé
Run vs Publish aspire run = dev local (moteur DCP). aspire publish = générer des manifests de déploiement.
Service discovery Automatique via variables d'env : ConnectionStrings__<name>, services__<name>__http__0
Cycle de vie des ressources Ordre DAG — les dépendances démarrent en premier. .WaitFor() contrôle les health checks.
Types de ressources ProjectResource, ContainerResource, ExecutableResource, ParameterResource
Intégrations 144+ sur 13 catégories. Package d'hébergement (AppHost) + package client (service).
Dashboard Logs en temps réel, traces, métriques, visualiseur GenAI. S'exécute automatiquement avec aspire run.
MCP Server Les assistants IA peuvent interroger les apps en cours d'exécution et rechercher des docs via CLI (STDIO).
Testing Aspire.Hosting.Testing — lancer l'AppHost complet dans xUnit/MSTest/NUnit.
Deployment Docker, Kubernetes, Azure Container Apps, Azure App Service.

6. Référence rapide CLI

Commandes valides dans Aspire CLI 13.1 :

Commande Description Statut
aspire new <template> Créer à partir d'un template Stable
aspire init Initialiser dans un projet existant Stable
aspire run Démarrer toutes les ressources localement Stable
aspire add <integration> Ajouter une intégration Stable
aspire publish Générer les manifests de déploiement Preview
aspire config Gérer les paramètres de configuration Stable
aspire cache Gérer le cache disque Stable
aspire deploy Déployer vers les cibles définies Preview
aspire do <step> Exécuter une étape du pipeline Preview
aspire update Mettre à jour les intégrations (ou --self pour la CLI) Preview
aspire mcp init Configurer MCP pour les assistants IA Stable
aspire mcp start Démarrer le serveur MCP Stable

Référence complète des commandes avec drapeaux : CLI Reference.


7. Motifs courants

Ajouter un nouveau service

  1. Créer votre répertoire de service (n'importe quel langage)
  2. Ajouter à l'AppHost : Add*App() ou AddProject<T>()
  3. Câbler les dépendances : .WithReference()
  4. Contrôler les health checks : .WaitFor() si nécessaire
  5. Exécuter : aspire run

Migration depuis Docker Compose

  1. aspire new aspire-apphost-singlefile (AppHost vide)
  2. Remplacer chaque service docker-compose par une ressource Aspire
  3. depends_on.WithReference() + .WaitFor()
  4. ports.WithHttpEndpoint()
  5. environment.WithEnvironment() ou .WithReference()

8. URLs clés

Ressource URL
Documentation https://aspire.dev
Runtime repo https://github.com/dotnet/aspire
Docs repo https://github.com/microsoft/aspire.dev
Samples https://github.com/dotnet/aspire-samples
Community Toolkit https://github.com/CommunityToolkit/Aspire
Dashboard image mcr.microsoft.com/dotnet/aspire-dashboard
Discord https://aka.ms/aspire/discord
Reddit https://www.reddit.com/r/aspiredotdev/

Skills similaires