SuperAPI AI 工具集

aspire-configuration

通用与其它

查看项目

更新于 10-16 01:27

技能介绍

用途:在基于 Aspire 的仓库中,把 AppHost 中的资源连接信息转换为应用可读的显式配置键,使应用代码保持纯净、不引用 Aspire 客户端或服务发现包。

主要能力与原则:AppHost 独占 Aspire 基础设施包;应用项目只绑定 IOptions<T> 或 Configuration;AppHost 必须把资源输出翻译成显式配置键(环境变量);AppHost 注入的每个值都必须能在生产环境中以环境变量或配置文件形式表示,避免不透明的服务发现与隐式配置。

使用方式:配置流向为 AppHost 资源 → WithEnvironment(...) → 应用配置键 → 应用中的 IOptions<T>。例如用 builder.AddPostgres("postgres") 和 AddDatabase("appdb") 建库,再用 WithEnvironment("BlobStorage__Enabled", "true") 等键注入设置,WithReference(db, "Postgres") 会显式设置 ConnectionStrings__Postgres。应用侧用 AddOptions<BlobStorageOptions>().BindConfiguration("BlobStorage").ValidateDataAnnotations().ValidateOnStart() 绑定配置,并直接初始化 SDK,不要在应用中添加 Aspire 客户端包或 AddServiceDiscovery。

功能开关与测试覆盖:开关放在配置中,由 AppHost 和测试夹具驱动,以保持开发、测试与生产的一致性,例如根据 config.UseVolumes 决定是否调用 WithDataVolume(false),并按 config.EnableBlobStorage 注入 BlobStorage__Enabled。集成测试模式参见 skills/aspire/integration-testing/SKILL.md。

限制:不得在应用项目引用 Aspire 客户端/服务发现包,不得依赖无法在生产复现的服务发现,不得把配置藏在仅 Aspire 可用的抽象后。具体收费、价格、平台与效果资料中暂未提供。