Skip to content

部署清单 ​

更新: 2026-10-16 15:20:09   字数: 0 字   时长: 0 分钟

部署清单(deployment manifest) 是 aspire publish 生成的核心产物——一份描述整个应用的 JSON 文档。它是「AppHost 应用模型」到「具体部署平台」之间的中间层。

生成清单 ​

bash
aspire publish

产物默认写到输出目录(通常是 ./aspire-output 或由 --output-path 指定)。

先 publish 再 deploy

aspire publish 只做序列化,不构建镜像、不改动环境。它非常适合:

  • 在 CI 里审查「这次上线到底会生成什么」。
  • 把产物交给已有的部署流程(GitOps、自定义脚本)。
  • 调试发布行为。

清单里有什么 ​

清单以资源为中心组织,包含:

部分内容
resources每个资源的类型、名称与属性。
绑定 / 端点资源暴露的端点与环境变量注入规则。
参数AddParameter 声明的参数,以及它们在部署时的占位符。
引用关系资源之间的连接方式(连接字符串、服务发现)。

参数占位符 ​

发布产物中,机密与环境相关的值不会以明文出现,而是使用占位符。这样做的目的是:

  • 同一份产物可以在不同环境复用。
  • 机密由部署平台注入,而不是写进文件。
text
{  "type": "parameter.v0",
  "value": "{inputs.input-parameters.some-secret.value}"
}

部署时,Aspire(或您的部署流程)负责把这些占位符替换为实际值。

不要把生产机密写进 AppHost 配置

清单中的占位符只是「结构」,真正的值来自部署时的参数或平台机密存储。把明文写进 appsettings.json 会让它进入版本库。

事件钩子 ​

发布前后可以挂载逻辑,用于校验或清理:

csharp
builder.OnBeforePublish((evt, ct) =>
{
    // 发布前校验资源
    return Task.CompletedTask;
});

builder.OnAfterPublish((evt, ct) =>
{
    // 发布后的清理或通知
    return Task.CompletedTask;
});
事件触发时机典型用途
BeforePublishEvent发布开始前校验或修改资源后再生成清单。
AfterPublishEvent发布完成后清理、通知、上传。

状态缓存 ​

Aspire 会缓存上一次发布 / 部署的状态,用于跳过没有变化的步骤,从而加快重复发布:

bash
aspire publish    # 首次:完整执行
aspire publish    # 二次:仅处理变化部分

下一步 ​

你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度