원클릭으로
iac-aliyun-deploying
阿里云 ROS 模板部署技能,负责可用性查询、执行部署与失败恢复
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
阿里云 ROS 模板部署技能,负责可用性查询、执行部署与失败恢复
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
使用 InfraGuard 审查 ROS 模板;有发现时直接修复并验证,初始扫描干净时直接输出模板
阿里云 Alibaba Cloud Policy as Code / InfraGuard 合规策略生成、校验与策略库查询
使用专用 ROS 模板询价工具预估 ROS 模板的月度部署费用,支持按需修复和校验模板问题
阿里云 ROS 模板生成——将架构方案转化为可部署的 ROS YAML 模板
阿里云 Alibaba Cloud ROS/Terraform IaC 模板生成、解释、完善、校验、询价与部署
判断用户输入是否为基础设施需求,并从中提取结构化的 IntentSpec
| name | iac-aliyun-deploying |
| description | 阿里云 ROS 模板部署技能,负责可用性查询、执行部署与失败恢复 |
| when_to_use | 当用户确认部署 ROS 模板时 |
| user_invocable | false |
| conclusion_schema | {"type":"object","required":["status"],"additionalProperties":false,"properties":{"stack_id":{"type":"string","description":"ROS Stack ID(部署成功时必填)"},"status":{"type":"string","enum":["success","failed","cancelled"],"description":"部署状态"},"resources_created":{"type":"array","items":{"type":"string"}},"outputs":{"type":"object"},"error":{"type":"string","description":"失败原因(status 为 failed 时必填)"}},"allOf":[{"if":{"properties":{"status":{"const":"success"}},"required":["status"]},"then":{"required":["stack_id"]}},{"if":{"properties":{"status":{"const":"failed"}},"required":["status"]},"then":{"required":["error"]}}]} |
负责将 ROS 模板部署到阿里云,包括可用性查询和部署失败恢复。
所有 API 调用都需要地域,按以下优先级确定:
Defaults to 'cn-hangzhou'),使用该默认值并告知用户确定后,所有 API 调用统一使用该地域。
写操作必须有用户确认,但确认来源可以是上层 pipeline:
ros_deploy 恢复失败部署。delete_and_create 只允许删除本步骤创建的失败 Stack;非本步骤创建的 Stack(例如通过 ListStacks 查到的 Stack)不得删除。如用户请求删除其他 Stack,必须另走明确“确认删除”的删除流程,不得在本步骤执行。status: cancelled 只表示用户明确取消部署,不得用 status: cancelled 表示等待用户确认。selected_plan.preview_ready_for_create 为 true 时,表示成本步骤已对同一模板路径完成预览验证,且没有完整部署参数缺口;部署时直接调用 ros_deploy 的 create,跳过例行 ros_validate_template,并跳过例行可用性查询。用户覆盖后的最终部署参数由 ros_deploy 的部署调用做最终校验。ros_validate_template 校验,template_url 使用当前步骤 prompt 中已选定的具体模板文件路径;已有具体地域时传 region_id,否则使用工具默认地域。不要通过 aliyun_api 调用 ROS 模板校验或部署生命周期接口。校验失败时分析错误原因,查 GetResourceType Schema(如需),修复模板文件后重试(最多 5 轮)。模板文件会被后续步骤依赖,必须确保其内容正确后再继续。ros_deploy 的 create 失败后,如果需要修改模板,成本步骤的预览验证已失效;修复后必须重新调用 ros_validate_template,通过后再调用 ros_deploy 的 continue_create。只调整部署参数时,不需要为了参数变化补跑 ros_validate_template;最终参数由 ros_deploy 的部署调用校验。ros_deploy 的 create / continue_create / delete_and_create 已经发起 ROS 操作但工具调用超时或中断时,不要再次调用创建类动作。使用同一 stack_id 调用 ros_deploy 的 wait,它只轮询已有 Stack 的创建进度,不会调用 CreateStack 或 ContinueCreateStack。快速创建路径已跳过例行可用性查询。其他情况下,当用户确认执行以下操作时,必须先查询可用性:
| 操作 | 查询范围 |
|---|---|
| ros_deploy create | 全量查询所有库存相关 Parameters |
| ros_deploy continue_create | 查询失败资源相关的 Parameters |
| ros_deploy delete_and_create | 按替代创建参数全量查询库存相关 Parameters |
| ros_deploy wait | 不查询库存;仅等待已发起创建的 Stack 达到终态 |
查询步骤:
无法找到公共可用区时,告知用户冲突详情,建议换规格系列或换地域。
调用 ros_deploy 的 create 前按以下优先级确定 parameters:
selected_plan.effective_deployment_parameters 非空时,直接作为最终部署参数集。selected_plan.selected_candidate_result.cost.deployment_parameters。status: failed 或通过 rollback_request 回到 confirm_and_select。装配参数时不得改写模板 Default,不得编造缺失的外部输入(LicenseKey、Token、证书、真实域名、已有资源 ID、VpcId、VSwitchId、SecurityGroupId、KeyPairName 等)。参数不可用或部署调用无法成功时,优先调整非用户指定参数;仍无法成功创建资源栈时,才可调整用户指定参数。部署步骤不计算费用。
新建 Stack 时,一开始就确定唯一 StackName,并作为 stack_name 传给 ros_deploy 的 create。StackName 使用方案或服务简名作为前缀,并追加时间或 6 位小写字母/数字随机串后缀(如 ai-app-20260623-a1b2c3),避免重名。
ros_deploy 的 create 必须传 stack_name,不要省略,不要使用容易重复的固定名称。ros_deploy 的 continue_create 面向已有失败 Stack 时,使用 create 失败结果中的 Stack 标识,不要生成新的 StackName。ros_deploy 的 delete_and_create 面向已有失败 Stack 时,stack_id 使用旧失败 Stack 标识;stack_name 使用替代创建目标的名称。ros_deploy 的 wait 面向已有创建中 Stack 时,只传 stack_id 和 region_id;不要传 template_url、parameters,不要生成新的 StackName。ros_deploy 工具执行 create / continue_create / delete_and_create / wait,禁止用 Bashros_deploy 的 create 会使用 DisableRollback: trueros_deploy 的 wait 只等待已有 Stack 创建完成,不发起创建、继续创建、删除或更新ros_deploy 的创建类动作使用装配后的 parameters 字典;不要手动展开为 Parameters.N.ParameterKeytemplate_url 支持本地文件路径:
ros_deploy的创建类动作中,template_url可传本地文件路径(如/tmp/template.yml),工具会自动读取文件内容。避免将大模板内容直接作为参数传递。
分析错误原因:
stack_id,且 Stack 仍在创建 → 调用 ros_deploy 的 waitros_deploy 的 continue_createcontinue_create 返回 ContinueCreateStackValidationFailed → 告知用户需要重建本步骤创建的失败 Stack,再调用 ros_deploy 的 delete_and_create仅在 continue_create 返回 ContinueCreateStackValidationFailed 后使用 delete_and_create。调用时:
stack_id 指向本步骤创建的旧失败 Stack,不得使用通过查询发现的其他 Stackstack_name、template_url、parameters、region_id 使用替代创建目标stack_id,不要把旧 stack_id 当成部署成功结果以下规则仅适用于 RPC 风格 API(style 未传或传 "RPC";ROA 风格用 JSON body/query,不受此约束)。
调用 RPC API 时,array、object 类参数需平铺为带数字下标的键,工具不会自动展开。规则:
1 起,依次递增array[string] → <Name>.<N>array[object] → <Name>.<N>.<SubKey>object → <Name>.<SubKey>| 文件 | 内容 |
|---|---|
| references/template-parameters.md | 模板参数规范:AssociationProperty、Label、分组 |
| references/cloud-products/ | 云产品选型文件(ecs.md、rds.md、redis.md、slb.md、vpc.md、oss.md) |
| references/ros-template.md | ROS 原生模板最佳实践:RunCommand、嵌套栈、条件部署 |