بنقرة واحدة
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、嵌套栈、条件部署 |