mcpField
A
aspire

aspire

github.com/rysweetクラウド・DevOps76116 回インストール22 週間前に更新
リポジトリ

aspire について

Aspire Orchestrationは、コードで分散アプリの構成を定義し、ローカル実行やAzureへのデプロイを調整するスキルです。マイクロサービス開発者向けに、複数言語のサービス、依存関係、サービス検出、ローカル診断を扱います。

主な機能

  1. 01コードによるアプリリソース構成の定義
  2. 02複数サービスのローカル起動と調整
  3. 03データベースやRedisなどの依存関係設定
  4. 04ログ、トレース、メトリクスの確認
  5. 05Azure Container Appsへのデプロイ

活用シーン

  1. 01複数サービス構成のAppHostを作成
  2. 02Python、Node.js、Goのサービスを編成に追加
  3. 03ローカル開発中にサービスログとトレースを確認
  4. 04azdでアプリをAzureへデプロイ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rysweet/amplihack --skill aspire

インストール後、Claude Code で/aspireを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands.md
examples.md
patterns.md
reference.md
troubleshooting.md

詳細

Aspire オーケストレーション

概要

多言語対応の分散アプリ向け、コードファーストのオーケストレーションです。AppHost でトポロジを定義し、aspire run でローカル環境をオーケストレーションし、azd deploy で Azure にデプロイします。

以下のキーワードで自動的に有効になります:aspire、マイクロサービス、分散アプリ、サービスディスカバリー、オーケストレーション

クイックスタート

# Install .NET 8+ and Aspire workload
# See: https://learn.microsoft.com/dotnet/aspire/fundamentals/setup-tooling
dotnet workload update
dotnet workload install aspire

# Create AppHost (orchestrates services in ANY language)
dotnet new aspire-apphost -n MyApp

# Basic AppHost - orchestrate Python, Node.js, .NET services
var builder = DistributedApplication.CreateBuilder(args);
var redis = builder.AddRedis("cache");

// Python service
var pythonApi = builder.AddExecutable("python-api", "python", ".").WithArgs("app.py").WithReference(redis);

// Node.js service
var nodeApi = builder.AddExecutable("node-api", "node", ".").WithArgs("server.js").WithReference(redis);

// .NET service
var dotnetApi = builder.AddProject<Projects.Api>("api").WithReference(redis);

builder.Build().Run();

# Run (orchestrates ALL languages)
aspire run  # Dashboard opens at http://localhost:15888

コアワークフロー

プロジェクトのセットアップ
dotnet new aspire-apphost -n MyApp
dotnet new webapi -n MyApp.Api
dotnet add MyApp.AppHost reference MyApp.Api

AppHost:Program.cs でリソースのトポロジを定義 ServiceDefaults:共有設定(ロギング、テレメトリ、レジリエンス) サービス:アプリ(API、ワーカー、Web アプリ)

依存関係の設定
// PostgreSQL
var postgres = builder.AddPostgres("db").AddDatabase("mydb");
var api = builder.AddProject<Projects.Api>("api").WithReference(postgres);

// Redis
var redis = builder.AddRedis("cache").WithRedisCommander();
var api = builder.AddProject<Projects.Api>("api").WithReference(redis);

// RabbitMQ
var rabbitmq = builder.AddRabbitMQ("messaging");
var worker = builder.AddProject<Projects.Worker>("worker").WithReference(rabbitmq);

// Access in code (connection strings auto-injected)
builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = builder.Configuration.GetConnectionString("cache");
});
ローカル開発
aspire run  # Starts all services

ダッシュボード(localhost:15888):リソース、ログ、トレース、メトリクス ホットリロード:コードの変更時に自動で再ビルド デバッグ:IDE から個々のサービスにアタッチ

クラウドへのデプロイ

Azure デプロイガイドを参照してください。

azd init  # Initialize Azure Developer CLI
azd up    # Deploy (generates Bicep → Azure Container Apps)
azd deploy -e production  # Deploy to specific environment

生成内容: Bicep → Container Apps + ネットワーク + マネージド ID

ナビゲーションガイド

プロジェクトをセットアップする場合:

  • examples.md 8~31 行 → 最小構成のプロジェクト
  • examples.md 518~608 行 → Python サービスの追加
  • examples.md 610~669 行 → Node.js サービスの追加
  • examples.md 671~768 行 → Go サービスの追加

インフラストラクチャを追加する場合:

  • reference.md 47~148 行 → データベース API(PostgreSQL、Redis、MongoDB)
  • examples.md 39~95 行 → Redis の統合
  • examples.md 102~176 行 → PostgreSQL の統合

デプロイする場合:

  • commands.md 215~288 行 → azd の完全なワークフロー
  • examples.md 387~515 行 → Azure デプロイの手順
  • patterns.md 5~42 行 → HA の設定

デバッグする場合:

  • troubleshooting.md 5~112 行 → オーケストレーションの失敗
  • troubleshooting.md 291~397 行 → 接続の問題
  • commands.md 131~179 行 → デバッグコマンド

クイックリファレンス

必須コマンド: 完全なリファレンスは commands.md を参照してください

多言語対応のパターン:

builder.AddProject<Projects.Api>("api");  // .NET
builder.AddExecutable("python-api", "python", ".").WithArgs("app.py");  // Python
builder.AddExecutable("node-api", "node", ".").WithArgs("server.js");  // Node.js
builder.AddExecutable("go-svc", "go", ".").WithArgs("run", "main.go");  // Go

サービスディスカバリー: AppHost の .WithReference(redis) → サービスの GetConnectionString("cache")

Amplihack との統合

コマンド:/ultrathink "Setup Aspire for microservices"

  • prompt-writer が要件を明確化 → architect が API 設計に reference.md を使用
  • builder が実装に examples.md を使用 → reviewer がベストプラクティスの確認に patterns.md を使用
  • tester が検証に troubleshooting.md を使用

エージェントとスキルの対応関係:

  • architect → reference.md(API 設計)
  • builder → examples.md(実装)
  • reviewer → patterns.md(ベストプラクティス)
  • tester → troubleshooting.md(検証)
  • すべてのエージェント → commands.md(CLI 操作)

コメント