.NET Aspire 用于云原生应用开发,提供用于构建、测试和部署分布式应用的框架,这些应用通常利用微服务、容器、无服务器体系结构等云构造。2024年7月23日宣布的新 8.1 版本是该平台自 5 月正式发布以来的第一次重大更新,Microsoft 对 .NET Aspire 的第一个重大更新Aspire 8.1解决了容器镜像的构建和 Python 代码的编排以及一系列新功能和增强功能的问题。
Aspire 框架本身可以称为分布式框架,因为它位于 NuGet 包的集合中,可用于在 Visual Studio、Visual Studio Code 或命令行中构建应用。
Microsoft的Mitch Denny在7月23日的.NET Aspire 8.1公告中说:“这个版本包括一些新功能和生活质量改进,这些反馈来自在生产应用程序中使用.NET Aspire的开发人员的反馈。他强调了此更新的两个具体功能:支持使用 AddDockerfile(...) 构建容器镜像,以及使用 AddPythonProject(...)编排 Python 代码.
容器镜像
使用在应用程序主机运行时自动构建 Docker 文件的方法AddDockerfile(...)
,该方法WithDockerfile(...)
还可以帮助开发人员通过允许轻松编辑和与现有资源集成来自动化 Dockerfile 构建和定制。因此,前者非常适合创建新的容器资源,而后者则用于修改现有的容器镜像。
这两种方法都支持构建参数和密钥,使开发人员能够将参数和敏感信息安全地传递给 Docker 构建过程,同时避免在应用程序清单中意外泄露。
Denny 说:“这意味着您可以快速编辑 Dockerfile,并依赖 .NET Aspire 来构建它们,而无需自己手动构建。
编排 Python 代码
Denny 强调的第二个主要特性是通过代码编排方法增强了对多语言微服务架构的支持。在 .NET Aspire 中,业务流程主要侧重于通过简化云原生应用的配置和互连的管理来增强本地开发体验。
该方法由 Willem Meints 贡献,允许开发人员启动基于 Python 的服务。要使用它,开发人员需要安装 Python 托管包并将 Python 资源添加到他们的应用程序模型中。该方法AddPythonProject(...)
利用 Python 的虚拟环境 (venv) 工具,需要手动安装文件中指定的依赖项。此外,如果包含依赖项,它将在 .NET Aspire 仪表板中启用遥测。但是,由于 OpenTelemetry 库的限制,必须在环境变量设置为 的情况下运行应用程序。requirements.txt
opentelemetry-distro[otlp]
ASPIRE_ALLOW_UNSECURED_TRANSPORT
true
Python 支持加入了对 Node.js 应用的现有支持。
Denny的文章还提供了有关以下内容的详细信息:
- 容器化扩展中提供的新资源类型和组件,范围从 Kafka UI 到 Azure Web PubSub
- 测试改进(更易于编写需要等待资源初始化的测试用例)
- 指标示例(聚合数据的示例数据点)
- 跨度链接(在跨度之间创建关系)
- 改进了实例 ID 名称(友好的实例 ID 而不是难以阅读的 GUID)
有关详细信息,请参阅 Microsoft 的 .NET Aspire 中的新增功能文档。