🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install github/awesome-copilot/aspire

💡 提示:需要 Node.js 和 NPM

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

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

心智模型: AppHost 是一个指挥——它不演奏乐器,而是告诉每个服务何时启动、如何找到彼此,并监控问题。

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


参考文档

参考文档 何时加载
CLI 参考 命令标志、选项或详细用法
MCP 服务器 为 AI 助手设置 MCP,可用工具
集成目录 通过 MCP 工具发现集成,连接模式
多语言 API 方法签名、链式调用选项、特定语言模式
架构 DCP 内部机制、资源模型、服务发现、网络、遥测
仪表板 仪表板功能、独立模式、生成式 AI 可视化工具
部署 Docker、Kubernetes、Azure 容器应用、应用服务
测试 针对 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(每个会话一次):

使用 libraryName: ".NET Aspire" 调用 mcp_context7_resolve-library-id

排名 库 ID 何时使用
1 /microsoft/aspire.dev 主要来源。指南、集成、CLI 参考、部署。
2 /dotnet/aspire API 内部机制、源代码级实现细节。
3 /communitytoolkit/aspire 非 Microsoft 的多语言集成(Go、Java、Node.js、Ollama)。

步骤 2 — 查询文档:

libraryId: "/microsoft/aspire.dev", query: "Python 集成 AddPythonApp 服务发现"
libraryId: "/communitytoolkit/aspire", query: "Golang Java Node.js 社区集成"

备用方案: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

# 验证
aspire --version

# 安装模板
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);

// 基础设施
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 机器学习服务
var ml = builder.AddPythonApp("ml-service", "../ml-service", "main.py")
    .WithHttpEndpoint(targetPort: 8000).WithReference(redis);

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

// Go 工作进程
var worker = builder.AddGolangApp("worker", "../go-worker")
    .WithReference(redis);

builder.Build().Run();

有关完整的 API 签名,请参阅 多语言 API


5. 核心概念(摘要)

概念 关键点
运行 vs 发布 aspire run = 本地开发(DCP 引擎)。aspire publish = 生成部署清单。
服务发现 通过环境变量自动完成:ConnectionStrings__<名称>services__<名称>__http__0
资源生命周期 DAG 排序 — 依赖项先启动。.WaitFor() 基于健康检查进行门控。
资源类型 ProjectResourceContainerResourceExecutableResourceParameterResource
集成 横跨 13 个类别的 144+ 个集成。托管包(AppHost)+ 客户端包(服务)。
仪表板 实时日志、跟踪、指标、生成式 AI 可视化工具。随 aspire run 自动运行。
MCP 服务器 AI 助手可以通过 CLI (STDIO) 查询正在运行的应用和搜索文档。
测试 Aspire.Hosting.Testing — 在 xUnit/MSTest/NUnit 中启动完整的 AppHost。
部署 Docker、Kubernetes、Azure 容器应用、Azure 应用服务。

6. CLI 快速参考

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 参考


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. 关键链接

资源 链接
文档 https://aspire.dev
运行时仓库 https://github.com/dotnet/aspire
文档仓库 https://github.com/microsoft/aspire.dev
示例仓库 https://github.com/dotnet/aspire-samples
社区工具包 https://github.com/CommunityToolkit/Aspire
仪表板镜像 mcr.microsoft.com/dotnet/aspire-dashboard
Discord https://aka.ms/aspire/discord
Reddit https://www.reddit.com/r/aspiredotdev/

📄 原始文档

完整文档(英文):

https://skills.sh/github/awesome-copilot/aspire

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。