跳到主要内容

方案优先流水线

selling_solution_first 是一条面向阿里云购买场景的流水线。它会先让您比较架构方案,再由 IaC Code 生成 ROS 模板;只实现并询价最终选中的方案,减少在不会部署的候选方案上花费的时间。

现有 selling 流水线仍然可用,并且仍是默认值。新流水线是需要显式选择的另一种方案,不会改变已有的 selling 会话。

适用场景

当您希望完成以下工作时,可以使用 selling_solution_first

  • 在实现前比较多种架构、云产品、费用、优点和风险;
  • 在确定模板前补充地域、规模、网络、可用性或预算等信息;
  • 只为选中的架构生成模板、执行预览和询价;
  • 在创建云资源前核对最终 ROS 参数和精确报价。
流水线工作顺序
selling生成并评估候选模板,选择一个方案,然后部署。
selling_solution_first规划并选择架构,只实现选中的方案,然后部署。

启动流水线

在交互式终端中运行:

IAC_CODE_MODE=pipeline \
IAC_CODE_PIPELINE_NAME=selling_solution_first \
iac-code

使用本地 Web 应用时,请在创建会话时选择流水线模式,并用指定的流水线名称启动服务:

IAC_CODE_PIPELINE_NAME=selling_solution_first iac-code web

通过 A2A 调用时,可以在每条消息中选择模式和流水线,而不必修改服务器默认值:

{
"metadata": {
"iac_code": {
"run_mode": "pipeline",
"pipeline_name": "selling_solution_first",
"preferredLanguage": "zh",
"candidatePresentation": "rich-v1"
}
}
}

pipeline_name 只接受 sellingselling_solution_first。不受支持的非空值会直接报错,不会静默运行另一条流水线。继续已保存的流水线时,应复用相同的 A2A contextId;持久化快照中的流水线标识是权威值。

三个阶段

1. 规划并选择方案

IaC Code 首先判断请求是否属于支持的阿里云基础设施任务。如果缺失的信息会明显影响产品组合、拓扑或价格,它会有针对性地提问。

随后会展示一到三个可比较的方案。每个方案可以包含:

  • 架构图和拓扑;
  • 阿里云产品和资源清单;
  • 推荐规格和硬约束;
  • 适用场景和解决的问题;
  • 用于比较的月度粗估费用;
  • 优点、缺点、风险和推荐理由。

您可以选择一个方案、调整需求并重新生成一组方案,或者取消。在这个阶段不会生成 ROS 模板,也不会创建云资源。

2. 实现选中的方案

IaC Code 只处理选中的方案。它会生成并写入 ROS 模板、校验模板、求解必填参数、运行 PreviewStack,并请求 ROS 精确询价。

部署前,界面会展示最终架构、模板参数和报价。您可以:

  • 确认部署;
  • 修改允许调整的参数并重新计算;
  • 返回第一阶段,选择或规划其他方案;
  • 取消且不创建云资源。

第一阶段的粗估费用和第二阶段的 ROS 精确报价是两个不同的值。部署确认以精确报价和当前模板参数为准。

3. 部署

确认后,IaC Code 会创建 ROS 资源栈、流式输出权威的资源栈进度、等待终态,并记录资源栈 ID 和输出。部署失败的信息会保留下来,便于诊断和恢复。

部署确认与工具权限

部署确认和工具权限是两个独立的安全边界:

  1. 部署确认表示您接受所选方案、参数和报价。
  2. 工具权限授权本次执行中的具体云变更调用,例如 ros:CreateStackvpc:CreateVpc

批准第一项不会自动批准第二项。工具需要权限时,IaC Code 会在调用点暂停并展示安全的权限请求。只读、变更和删除操作会使用不同的提示。云 API 详情可以包含产品、API、地域、API 调用顺序以及脱敏参数;凭证、令牌、签名和其他敏感值不会进入展示字段。

用户可以选择仅本次允许拒绝。权限决定会与具体请求精确关联,并写入权限审计日志。如果必需的审计记录无法持久化,允许决定会按失败关闭原则被拒绝。

暂停、恢复与交接

方案选择、问题、部署确认和权限请求都是可恢复的等待点。IaC Code 会在依赖调用方继续操作前持久化流水线快照。进程重启或会话重新加载后,界面会重建已完成的步骤,并把待处理输入恢复到原来的位置,而不是全部堆到会话末尾。

对于 A2A 集成:

  • permission_requestedpermission_resolved 事件会保留所属步骤和候选坐标;
  • 恢复后的任务快照通过 pendingPermissions 暴露尚未处理的请求;
  • 通过旁路消息返回权限决定后,会恢复原 task 和 context;
  • 重复发送同一个决定具有幂等性,冲突的决定会被拒绝。

流水线完成、失败、提前退出或取消后,会把同一个上下文交接给普通对话。后续请求可以继续使用所选方案、生成的模板、部署结果和清理状态,无需新建会话。

界面与语言

该流水线支持交互式终端、本地 Web 应用、Desktop Web 外壳、SDK 进程模式和 A2A 服务器模式。不同界面的展示能力有所不同,例如 A2A 可以请求结构化的 rich-v1 候选方案,但它们共享相同的流水线状态和安全边界。

面向用户的流水线文本支持英语、简体中文、西班牙语、法语、德语、日语和葡萄牙语。A2A 调用方通过 metadata.iac_code.preferredLanguage 选择单次请求的语言;协议字段名、枚举值、ID 和 JSON 结构不会翻译。

相关文档