コンテンツにスキップ

リソースの理解

Aspire を使えば、フロントエンド、API、データベースなど、アプリケーションに必要なすべてを AppHost を通じて簡単に定義できます。リソースをコードで記述するだけで、接続や連携は Aspire が自動的に処理してくれます。

Rリソースには、次のようなものがあります:

  • AI サービス: 大規模言語モデル(LLM)、AI エンドポイント、Cognitive Services
  • キャッシュ: Redis、インメモリ キャッシュ、分散キャッシュ ソリューション
  • コンテナー: データベース、メッセージ ブローカー、その他 Docker コンテナー
  • データベース: SQL Server、PostgreSQL、MySQL、MongoDB、その他データ ストア
  • 実行可能ファイル: コンソール アプリケーション、スクリプト、バックグラウンド サービス
  • フレームワーク: さまざまなフレームワークで構築された Web アプリ、API、マイクロサービス
  • メッセージング サービス: Service Bus、RabbitMQ、Kafka、その他メッセージング システム
  • プロジェクト: C# プロジェクト、Node.js アプリケーション、Python サービス、その他
  • ストレージ: Blob Storage、ファイル システム、クラウド ストレージ サービス

リソースは、AppHost で定義する 明示的な依存関係 を通じて連携します。これらの依存関係をモデル化すると、接続の設定、起動順序、接続管理は Aspire が自動的に処理してくれるため、インフラ管理ではなくアプリケーション開発に集中できます。

たとえば、API サービスがデータベースに依存し、待機戦略を設定している場合、Aspire は接続文字列を自動的に注入し、API サービスより先にデータベースが起動することを保証します。

  1. まずデータベースを起動します。
  2. 正常な状態(healthy)になるまで待機します。
  3. 接続文字列を API サービスに注入します。
  4. API サービスを起動します。

どのように リソース階層 をモデル化し、 複雑なアプリケーション構造を表現するかについて、詳しくはこちらをご覧ください。

リソースは、環境変数(環境ごとに変化する値)、依存サービスへ自動的に流れる 接続文字列、ポートやボリュームなどを制御する明示的な リソース パラメーター、そして単なるプロセス状態を超えて準備完了を判断できる カスタム 正常性チェック を組み合わせて構成します。

内部的には、すべての連携は コンテナー または 実行可能ファイル のいずれかとして扱われます。つまり、任意 のコンテナー イメージ、コードベース、スクリプト、クラウド リソースを AppHost に追加できます。再利用可能な Aspire 連携の作成は、再利用可能な UI コンポーネントを作るのと同じ感覚で行えます。必要に応じてシンプルにも高度にも設計でき、完全に共有可能です。

Aspire は、ローカル開発におけるリソースのライフサイクル全体を管理します:

  1. 検出: リソースが検出され、依存関係が解析されます。
  2. 起動: 関係性を考慮し、依存関係の順序に従ってリソースが起動されます。
  3. 正常性監視: リソースの状態や準備完了状況が継続的に監視されます。
  4. シャットダウン: アプリケーション終了時に、リソースが正常に停止されます。

組み込みリソースとライフサイクルを確認して、どのように連携してアプリケーションを支えているのかをご覧ください。