aspirate 工具
dotnet tool aspirate
https://www.nuget.org/packages/aspirate/0.1.40-preview
作为全局工具安装
dotnet tool install -g aspirate --prerelease
注意:由于 Aspirete 还在开发中,它现在以预览版的形式发布,使用 --prelease 参数将使用最新的预览版
加工清单
跳转到你的 Aspire 项目中的 AppHost 目录中,然后执行
aspirate generate
该命令 (默认) 将对选中的项目进行构建,然后将容器推送到提供的容器 registry 中。构建可以通过使用参数 --skip-build 来跳过。
默认情况下,你的清单文件将保存在 AppHost/aspirate-output 文件夹中。
如果你愿意,你可以生成一个精简版的 docker-compose 部署,而不是 kubenetes 部署。此时,你可以提供参数 --output-format compose 来达成。请注意,这将导致禁用密钥支持。
aspirate generate --output-format compose
构建
构建命令 build 将构建定义在 aspire 清单中的所有项目,并推送容器到提供的容器 registry 中。
该命令对于重新构建并推送容器到 registry 特别有用,使用一个简单的菜单来选择你希望构建的项目。
该命令将首先创建清单文件,不过该行为可以通过使用参数 --aspire-manifest 或者 -m 并提供现有清单文件的路径来覆盖掉。
aspirate build
密钥管理
Aspirate 现在内置支持强大的密钥管理,允许你简单地加密敏感数据,例如连接串等等。该特性旨在增强安全性和最大限度减少漏洞。
管理密钥
在 generate 和 apply 过程中,系统将提示您输入密码。此密码用于加密位于 aspirate-output 目录中的名为 aspirate-secrets.json 的密钥文件中的密钥。
密钥文件内容
密钥文件包含加密的密钥,可以安全地提交到 Git 存储库。但是,请小心处理此密码。如果丢失,您将无法访问加密的密钥,需要使用 generate 命令创建一个新密钥。
生成密钥
generate 命令在生成过程中提供了一个交互式菜单,允许您使用现有密钥、覆盖它们或更新它们。
应用密钥
apply 命令将解密 secrets 文件,并将 secrets 与所有清单一起应用于群集。
禁用机密管理
如果不需要密钥,则可以将 --disable-secrets 标志传递给所有命令以禁用密钥功能。但是,一旦生成包含机密的清单,则如果不重新生成清单,就无法禁用它们。
应用清单
若要将清单应用于群集,请运行:
aspirate apply
Aspirate 将首先询问您希望操作的上下文,并首先确认您希望采取行动。
删除清单
若要从群集中删除清单,请运行:
aspirate destroy
Aspirate将首先询问希望操作的上下文,并首先确认您希望采取行动。
初始化
init 命令允许您为 Aspire 将使用的 aspire 项目引导某些设置。
- ContainerRegistry:设置此项意味着您不需要在 csproj 中配置,如果找不到它
- 所有构建都将使用它。
- ContainerTag - 将覆盖使用的容器标记(如果不在 csproj 中 - 如果未在设置中指定),将回退到 latest。
- TemplatePath - 这自定义了加载转换为清单的模板时使用的路径,您可以从源中获取模板文件夹,并使用所有自定义更改进行修改,只要您不删除占位符,aspirate 将使用这些占位符而不是其内置。当我们有文档时,更多关于这一点和可能的用例(例如添加作业以创建数据库等)......
要使用 init 命令,只需运行:
aspirate init
从您的 AppHost 目录中 - 它会询问您要覆盖哪些设置。
非交互式调用
除了 generate 之外的所有命令都可以通过传递 --non-interactive 标志以非交互方式调用。如果禁用了机密,则可以使用 Generate。
这将导致工具使用默认上下文,并且不提示确认。
使用此标志时,必须在命令行上传递所有配置参数。
卸载工具
Aspirate 可以通过执行下面的命令进行全局卸载
dotnet tool uninstall -g aspirate
配置 Windows 终端以支持 Unicode 和表情符号
Windows 终端支持 Unicode 和 Emoji。但是,Powershell 和 cmd.exe 等 shell 则不然。有关两者之间的区别,请参阅 控制台、终端和 shell 之间的区别。
对于 PowerShell,以下命令将启用 Unicode 和表情符号支持。您可以将此添加到 profile.ps1 文件中:
[console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
对于cmd.exe,需要以下步骤才能启用 Unicode 和 Emoji 支持。
- 运行intl.cpl。
- 单击“管理”选项卡
- 单击“更改系统区域设置”按钮。
- 选中“使用 Unicode UTF-8 获得全球语言支持”复选框。
- 重新启动。
您还需要确保将控制台应用程序配置为使用支持 Unicode 和表情符号的字体,例如 Cascadia Code。
DevContainer 支持
通过安装以下功能,可以在 devcontainer 中使用 Aspirate:
features“: {
“ghcr.io/prom3theu5/aspirational-manifests/aspirate:latest”: {}
}
可以在文档页面上找到 devcontainer 的示例: 详见这里