aspire について
Aspire は、複数のプログラミング言語で構築されたオブザーバブルな分散アプリケーションをオーケストレーションする、コード中心のツールチェーンです。単一の AppHost でサービスを開発・実行するチーム向けに、サービスディスカバリー、ダッシュボード、デプロイマニフェスト生成を提供します。
主な機能
- 01単一の AppHost によるオーケストレーション
- 02複数言語のワークロードに対応
- 03サービスディスカバリーと依存関係の順序制御
- 04ログ・トレース・メトリクス用ダッシュボード
- 05デプロイマニフェストの生成
活用シーン
- 01複数サービスアプリのローカル実行
- 02依存関係とヘルスチェックの設定
- 03デプロイマニフェストの生成
- 04統合テストでの AppHost 検証
MCP 対応
Aspire は AI アシスタント向けの MCP サーバーを提供します。CLI のバージョンに応じて、統合の検索やドキュメント検索のツールを公開し、実行中のアプリケーションを照会できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill aspireインストール後、Claude Code で/aspireを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/architecture.mdcli-reference.mddashboard.mddeployment.mdintegrations-catalog.mdmcp-server.mdpolyglot-apis.mdtesting.mdtroubleshooting.md詳細
Aspire — ポリグロットな分散アプリケーションオーケストレーション
Aspire は、可観測で本番環境に対応した分散アプリケーションを構築するための コードファーストでポリグロットなツールチェーン です。ワークロードが C#、Python、JavaScript/TypeScript、Go、Java、Rust、Bun、Deno、PowerShell のいずれであっても、単一の AppHost プロジェクトからコンテナ、実行可能ファイル、クラウドリソースをオーケストレーションします。
メンタルモデル: AppHost は 指揮者 です。楽器を演奏するのではなく、各サービスにいつ起動するか、お互いをどう見つけるかを指示し、問題を監視します。
詳細なリファレンス資料は references/ フォルダーにあります — 必要に応じて読み込んでください。
リファレンス
| リファレンス | 読み込むタイミング |
|---|---|
| CLI リファレンス | コマンドのフラグ、オプション、詳細な使用法 |
| MCP サーバー | AI アシスタント向けの MCP のセットアップ、利用可能なツール |
| 統合カタログ | MCP ツールによる統合の発見、接続パターン |
| ポリグロット API | メソッドシグネチャ、チェーンのオプション、言語固有のパターン |
| アーキテクチャ | DCP の内部、リソースモデル、サービスディスカバリ、ネットワーク、テレメトリ |
| ダッシュボード | ダッシュボードの機能、スタンドアロンモード、GenAI Visualizer |
| デプロイ | Docker、Kubernetes、Azure Container Apps、App Service |
| テスト | AppHost に対する統合テスト |
| トラブルシューティング | 診断コード、よくあるエラー、修正方法 |
1. Aspire ドキュメントの調査
Aspire チームは、AI アシスタント内で直接ドキュメントツールを提供する MCP サーバー を公開しています。セットアップの詳細については MCP サーバー を参照してください。
Aspire CLI 13.2 以降(推奨 — 組み込みのドキュメント検索あり)
Aspire CLI 13.2 以降(aspire --version)を実行している場合、MCP サーバーにはドキュメント検索ツールが含まれています:
| ツール | 説明 |
|---|---|
list_docs | aspire.dev から利用可能なすべてのドキュメントを一覧表示します |
search_docs | インデックス化されたドキュメント全体に対して重み付けされた字句検索を実行します |
get_doc | スラッグで特定のドキュメントを取得します |
これらのツールは PR #14028 で追加されました。更新するには: aspire update --self --channel daily。
このアプローチの詳細については、David Pine の投稿を参照してください: https://davidpine.dev/posts/aspire-docs-mcp-tools/
Aspire CLI 13.1(統合ツールのみ)
13.1 では、MCP サーバーは統合の検索を提供しますが、ドキュメント検索は提供し ません:
| ツール | 説明 |
|---|---|
list_integrations | 利用可能な Aspire ホスティング統合を一覧表示します |
get_integration_docs | 特定の統合パッケージのドキュメントを取得します |
13.1 で一般的なドキュメントのクエリを行うには、Context7 を主要な情報源として使用してください(以下を参照)。
フォールバック: Context7
Aspire MCP ドキュメントツールが利用できない場合(13.1)や、MCP サーバーが実行されていない場合は、Context7(mcp_context7)を使用してください:
ステップ 1 — ライブラリ ID を解決する(セッションごとに 1 回):
libraryName: ".NET Aspire" を指定して mcp_context7_resolve-library-id を呼び出します。
| 順位 | ライブラリ ID | 使用するタイミング |
|---|---|---|
| 1 | /microsoft/aspire.dev | 主要な情報源。ガイド、統合、CLI リファレンス、デプロイ。 |
| 2 | /dotnet/aspire | API の内部、ソースレベルの実装詳細。 |
| 3 | /communitytoolkit/aspire | マイクロソフト以外のポリグロット統合(Go、Java、Node.js、Ollama)。 |
ステップ 2 — ドキュメントをクエリする:
libraryId: "/microsoft/aspire.dev", query: "Python integration AddPythonApp service discovery"
libraryId: "/communitytoolkit/aspire", query: "Golang Java Node.js community integrations"
フォールバック: GitHub 検索(Context7 も利用できない場合)
GitHub 上の公式ドキュメントリポジトリを検索します:
- ドキュメントリポジトリ:
microsoft/aspire.dev— パス:src/frontend/src/content/docs/ - ソースリポジトリ:
dotnet/aspire - サンプルリポジトリ:
dotnet/aspire-samples - コミュニティ統合:
CommunityToolkit/Aspire
2. 前提条件とインストール
| 要件 | 詳細 |
|---|---|
| .NET SDK | 10.0+(.NET 以外のワークロードでも必須 — AppHost は .NET です) |
| コンテナランタイム | Docker Desktop、Podman、または Rancher Desktop |
| IDE(任意) | 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
# Verify
aspire --version
# Install templates
dotnet new install Aspire.ProjectTemplates
3. プロジェクトテンプレート
| テンプレート | コマンド | 説明 |
|---|---|---|
| aspire-starter | aspire new aspire-starter | ASP.NET Core/Blazor スターター + AppHost + テスト |
| aspire-ts-cs-starter | aspire new aspire-ts-cs-starter | ASP.NET Core/React スターター + AppHost |
| aspire-py-starter | aspire new aspire-py-starter | FastAPI/React スターター + AppHost |
| aspire-apphost-singlefile | aspire new aspire-apphost-singlefile | 空の単一ファイル AppHost |
4. AppHost クイックスタート(ポリグロット)
AppHost はすべてのサービスをオーケストレーションします。.NET 以外のワークロードはコンテナまたは実行ファイルとして動作します。
var builder = DistributedApplication.CreateBuilder(args);
// Infrastructure
var redis = builder.AddRedis("cache");
var postgres = builder.AddPostgres("pg").AddDatabase("catalog");
// .NET API
var api = builder.AddProject<Projects.CatalogApi>("api")
.WithReference(postgres).WithReference(redis);
// Python ML service
var ml = builder.AddPythonApp("ml-service", "../ml-service", "main.py")
.WithHttpEndpoint(targetPort: 8000).WithReference(redis);
// React frontend (Vite)
var web = builder.AddViteApp("web", "../frontend")
.WithHttpEndpoint(targetPort: 5173).WithReference(api);
// Go worker
var worker = builder.AddGolangApp("worker", "../go-worker")
.WithReference(redis);
builder.Build().Run();
完全な API シグネチャについては、Polyglot APIs を参照してください。
5. 中核となる概念(概要)
| 概念 | ポイント |
|---|---|
| Run と Publish | aspire run = ローカル開発(DCP エンジン)。aspire publish = デプロイマニフェストを生成。 |
| サービスディスカバリ | 環境変数による自動設定: ConnectionStrings__<name>、services__<name>__http__0 |
| リソースのライフサイクル | DAG による順序付け — 依存関係が先に起動します。.WaitFor() はヘルスチェックを条件にします。 |
| リソースの種類 | ProjectResource、ContainerResource、ExecutableResource、ParameterResource |
| 統合 | 13 カテゴリにわたる 144 以上。ホスティングパッケージ(AppHost)+ クライアントパッケージ(サービス)。 |
| ダッシュボード | リアルタイムのログ、トレース、メトリクス、GenAI ビジュアライザー。aspire run で自動的に起動します。 |
| MCP サーバー | AI アシスタントが CLI(STDIO)経由で実行中のアプリにクエリを実行し、ドキュメントを検索できます。 |
| テスト | Aspire.Hosting.Testing — xUnit/MSTest/NUnit で完全な AppHost を起動します。 |
| デプロイ | Docker、Kubernetes、Azure Container Apps、Azure App Service。 |
6. CLI クイックリファレンス
Aspire CLI 13.1 で有効なコマンド:
| コマンド | 説明 | ステータス |
|---|---|---|
aspire new <template> | テンプレートから作成 | Stable |
aspire init | 既存プロジェクトで初期化 | Stable |
aspire run | すべてのリソースをローカルで起動 | Stable |
aspire add <integration> | 統合を追加 | Stable |
aspire publish | デプロイマニフェストを生成 | Preview |
aspire config | 構成設定を管理 | Stable |
aspire cache | ディスクキャッシュを管理 | Stable |
aspire deploy | 定義済みのターゲットにデプロイ | Preview |
aspire do <step> | パイプラインのステップを実行 | Preview |
aspire update | 統合を更新(CLI 本体は --self) | Preview |
aspire mcp init | AI アシスタント向けに MCP を構成 | Stable |
aspire mcp start | MCP サーバーを起動 | Stable |
フラグを含む完全なコマンドリファレンス: CLI Reference。
7. 一般的なパターン
新しいサービスを追加する
- サービスのディレクトリを作成します(言語は問いません)
- AppHost に追加します:
Add*App()またはAddProject<T>() - 依存関係を接続します:
.WithReference() - 必要に応じてヘルスチェックを条件にします:
.WaitFor() - 実行します:
aspire run
Docker Compose からの移行
aspire new aspire-apphost-singlefile(空の AppHost)- 各
docker-composeサービスを Aspire リソースに置き換えます depends_on→.WithReference()+.WaitFor()ports→.WithHttpEndpoint()environment→.WithEnvironment()または.WithReference()
8. Key URLs
| Resource | 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 |
| https://www.reddit.com/r/aspiredotdev/ |