mcpField
A
aspire

aspire

github.com/github云与 DevOps40.5k9.0k 次安装1 天前更新
代码仓库

关于 aspire

Aspire 是一套以代码为中心的工具链,用于编排多种语言构建的可观测分布式应用。它面向通过单个 AppHost 开发和运行服务的团队,提供服务发现、仪表板及部署清单生成。

主要功能

  1. 01通过单个 AppHost 编排
  2. 02支持多语言工作负载
  3. 03服务发现与依赖排序
  4. 04查看日志、追踪和指标的仪表板
  5. 05生成部署清单

适用场景

  1. 01在本地运行多服务应用
  2. 02连接依赖并设置健康检查
  3. 03生成部署清单
  4. 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.md
cli-reference.md
dashboard.md
deployment.md
integrations-catalog.md
mcp-server.md
polyglot-apis.md
testing.md
troubleshooting.md

详细介绍

Aspire — 多语言分布式应用编排

Aspire 是一套 代码优先的多语言工具链,用于构建可观测、可投入生产的分布式应用。它能在单个 AppHost 项目中编排容器、可执行文件和云资源——无论工作负载是 C#、Python、JavaScript/TypeScript、Go、Java、Rust、Bun、Deno 还是 PowerShell。

心智模型: AppHost 就像一位指挥家——它不演奏乐器,而是告诉每个服务何时启动、如何相互发现,并持续关注问题。

详细参考资料位于 references/ 文件夹中——按需加载。


参考资料

参考资料何时加载
CLI 参考需要命令标志、选项或详细用法时
MCP 服务为 AI 助手设置 MCP、可用的工具
集成目录通过 MCP 工具发现集成、接线模式
多语言 API方法签名、链式调用选项、特定语言的模式
架构DCP 内部机制、资源模型、服务发现、网络、遥测
仪表板仪表板功能、独立模式、GenAI 可视化工具
部署Docker、Kubernetes、Azure Container Apps、App Service
测试针对 AppHost 的集成测试
故障排除诊断代码、常见错误及修复方法

1. 研究 Aspire 文档

Aspire 团队提供了一个 MCP 服务,可直接在你的 AI 助手中提供文档工具。有关设置详情,请参阅 MCP 服务。

Aspire CLI 13.2+(推荐——内置文档搜索)

如果运行的是 Aspire CLI 13.2 或更高版本(aspire --version),该 MCP 服务包含文档搜索工具:

工具描述
list_docs列出 aspire.dev 上所有可用的文档
search_docs在已索引的文档中执行加权词法搜索
get_doc根据 slug 获取特定文档

这些工具是在 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(每个会话执行一次):

调用 mcp_context7_resolve-library-id,参数为 libraryName: ".NET Aspire"。

排名库 ID使用场景
1/microsoft/aspire.dev主要来源。指南、集成、CLI 参考、部署。
2/dotnet/aspireAPI 内部机制、源码级实现细节。
3/communitytoolkit/aspire非 Microsoft 的多语言集成(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 SDK10.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-starteraspire new aspire-starterASP.NET Core/Blazor 起始项目 + AppHost + 测试
aspire-ts-cs-starteraspire new aspire-ts-cs-starterASP.NET Core/React 起始项目 + AppHost
aspire-py-starteraspire new aspire-py-starterFastAPI/React 起始项目 + AppHost
aspire-apphost-singlefileaspire 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. 核心概念(概要)

概念要点
运行 vs 发布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 助手可通过命令行(STDIO)查询正在运行的应用并搜索文档。
测试Aspire.Hosting.Testing — 在 xUnit/MSTest/NUnit 中启动完整的 AppHost。
部署Docker、Kubernetes、Azure Container Apps、Azure App Service。

6. 命令行快速参考

Aspire CLI 13.1 中的有效命令:

命令描述状态
aspire new <template>从模板创建稳定
aspire init在现有项目中初始化稳定
aspire run在本地启动所有资源稳定
aspire add <integration>添加集成稳定
aspire publish生成部署清单预览
aspire config管理配置设置稳定
aspire cache管理磁盘缓存稳定
aspire deploy部署到已定义的目标预览
aspire do <step>执行某个管道步骤预览
aspire update更新集成(或使用 --self 更新 CLI)预览
aspire mcp init为 AI 助手配置 MCP稳定
aspire mcp start启动 MCP 服务稳定

带标志的完整命令参考:CLI Reference。


7. 常见模式

添加新服务
  1. 创建你的服务目录(任意语言)
  2. 添加到 AppHost:Add*App() 或 AddProject<T>()
  3. 连接依赖项:.WithReference()
  4. 以健康状态为门槛:如有需要,使用 .WaitFor()
  5. 运行:aspire run
从 Docker Compose 迁移
  1. aspire new aspire-apphost-singlefile(空 AppHost)
  2. 将每个 docker-compose 服务替换为 Aspire 资源
  3. depends_on → .WithReference() + .WaitFor()
  4. ports → .WithHttpEndpoint()
  5. environment → .WithEnvironment() 或 .WithReference()

8. Key URLs

ResourceURL
Documentationhttps://aspire.dev
Runtime repohttps://github.com/dotnet/aspire
Docs repohttps://github.com/microsoft/aspire.dev
Sampleshttps://github.com/dotnet/aspire-samples
Community Toolkithttps://github.com/CommunityToolkit/Aspire
Dashboard imagemcr.microsoft.com/dotnet/aspire-dashboard
Discordhttps://aka.ms/aspire/discord
Reddithttps://www.reddit.com/r/aspiredotdev/

评论

支持 Markdown