ソース情報
- リポジトリ
- aliyun/iac-code
- ソースの最終更新活動
- 2026年8月29日 15:59
- 検出された SKILL.md の言語
- 中国語
- スター
- 26
- フォーク
- 3
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/aliyun/iac-code --skill iac-aliyun-deployingコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Use Alibaba Cloud ROS Agent through its StartChat API for remote infrastructure conversations. Trigger when the user explicitly asks for the ROS Agent, its StartChat API, or a remote iac-code conversation through Alibaba Cloud. Supports normal and selling Pipeline conversations, questions, candidate selection, correlated permission approval or denial, and explicit StopChat cancellation. Do not trigger for ordinary Alibaba Cloud infrastructure work that can use the local iac-code Skill, or for unrelated ROS API operations.
阿里云 ROS 模板部署技能,负责可用性查询、执行部署与失败恢复
为用户选中的唯一方案生成并校验 ROS 模板,求解参数、PreviewStack、ROS 精确询价并请求部署确认
SKILL.md を表示中
| name | iac-aliyun-deploying |
| description | selling_solution_first 的阿里云 ROS 模板部署技能,负责可用性查询、执行部署与失败恢复 |
| when_to_use | selling_solution_first 已完成方案确认并进入部署步骤时 |
| user_invocable | false |
| conclusion_schema | {"type":"object","description":"部署步骤的最终运行时结果;模型通过 complete_step 只提交 status,其余字段由 Python 从真实 ros_deploy 记录补全。","required":["status"],"additionalProperties":false,"properties":{"stack_id":{"type":"string","description":"ros_deploy 达到 CREATE_COMPLETE 后返回的真实 ROS Stack ID;status=success 时必填"},"status":{"type":"string","enum":"[Truncated]","description":"success 表示已有 CREATE_COMPLETE 工具证据;failed 表示恢复后仍失败;cancelled 只表示用户明确取消"},"resources_created":{"type":"array","description":"ros_deploy 成功结果中确认已创建的真实资源标识或名称;没有返回时可省略","items":"[Truncated]"},"outputs":{"type":"object","description":"ros_deploy 在 CREATE_COMPLETE 后返回的真实 Stack Outputs;不得填模板表达式、占位符或推断值"},"error":{"type":"string","description":"最终无法部署的真实工具错误与恢复结果;status=failed 时必填"}},"allOf":[{"if":"[Truncated]","then":"[Truncated]"},{"if":"[Truncated]","then":"[Truncated]"}]} |
负责将 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 使用 selected_plan.template_url,也就是当前步骤 prompt 中已选定的具体模板文件路径;已有具体地域时传 region_id,否则使用工具默认地域。不要通过 aliyun_api 调用 ROS 模板校验或部署生命周期接口。校验失败时分析错误原因,查 GetResourceType Schema(如需),只能使用 edit_file 就地修复 selected_plan.template_url 指向的原模板文件后重试(最多 5 轮);不得写入新的模板文件,不得改用新的模板路径。模板文件会被后续步骤依赖,必须确保其内容正确后再继续。ros_validate_template 或 ros_deploy 报错时先区分错误性质:模板诊断(指向具体资源、属性、参数或行号)才修模板;环境类错误(登录过期、凭证或签名失败、网络不可达、准备 API 调用失败等)与模板内容无关,不要改模板绕过,也不要用标准库 PyYAML 自查模板(yaml.safe_load 没有 ROS 短标签构造器,模板用了 !Ref 必然报错,与模板正确性无关),按错误提示处理或如实报告失败原因。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。selected_plan.parameter_overrides 是用户在选择步骤给出的最新参数选择,首次创建时优先级最高,不得主动替换。只有真实的只读 API 或 ros_deploy 结果证明该值不可用,并且所有非用户指定参数的调整方案都已耗尽后,才可修改对应的用户参数;修改时必须向用户说明失败证据、原值、新值和调整原因,不得仅凭推荐、默认值或经验主动改写。
快速创建标记不为 true,或 selected_plan.selected_candidate_result.cost.missing_deployment_parameters 非空时,不要把成本阶段的参数缺口当成最终结论。部署阶段可以继续使用 ros_get_template_parameter_constraints 补全参数,但不要调用询价工具,也不要向用户发起澄清问题。
参数补全流程:
selected_plan.effective_deployment_parameters、selected_plan.selected_candidate_result.cost.deployment_parameters、用户 parameter_overrides、模板 Default 和上下文已有值合并当前参数。ros_get_template_parameter_constraints,传当前 parameters 字典继续求解可用候选。NoEcho、AssociationProperty、描述/约束表明是密码)生成合规随机值,必须满足长度、复杂度、AllowedPattern、ConstraintDescription。同一个真实值必须贯穿参数补全、parameters、结构化结论和部署,不得替换为 ***、[REDACTED] 或 <redacted>;服务端日志由运行时单独脱敏。ros_deploy 创建类动作,由部署调用做最终参数校验。部署错误指向参数时按上述优先级恢复;错误指向模板时按模板校验/修复流程处理。不得仅因部署参数缺失返回 status: failed。只有在已经先尽量补齐或生成参数、调用可用工具仍无法形成合法完整参数集,且剩余缺口属于不得编造的外部输入时,才允许失败或回滚;失败原因必须列出剩余缺口和为什么不能自动补齐。
快速创建路径已跳过例行可用性查询。其他情况下,当用户确认执行以下操作时,必须先查询可用性:
| 操作 | 查询范围 |
|---|---|
| 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 作为当前参数基础。selected_plan.selected_candidate_result.cost.missing_deployment_parameters 非空,或仍缺少模板必填参数时,按「部署前参数补全」先尽量补齐或生成参数,再交由 ros_deploy 做最终参数校验。装配参数时不得改写模板 Default,不得编造缺失的外部输入(LicenseKey、Token、证书、真实域名、已有资源 ID、VpcId、VSwitchId、SecurityGroupId、KeyPairName 等)。部署步骤不计算费用。
新建 Stack 时,一开始就确定唯一 StackName,并作为 stack_name 传给 ros_deploy 的 create。用户指定名称时将其作为基础名,否则使用方案或服务简名;两者都追加时间或 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.ParameterKeyros_deploy 成功结果包含 outputs 时,由 Python completion enricher 原样注入运行时 conclusion;不得在 complete_step 输入中复制、推断或伪造 Stack Outputstemplate_url 支持本地文件路径:
ros_deploy的创建类动作中,template_url可传当前工作目录内的本地文件路径(如./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、嵌套栈、条件部署 |
本 pipeline 采用分层 completion schema。模型只提交终态:
{"conclusion":{"status":"success"}}{"conclusion":{"status":"failed"}}{"conclusion":{"status":"cancelled"}}Python 在 runtime schema 校验和 completion guard 前,从本步骤有序 ros_deploy 记录补全真实
stack_id、outputs 和失败 error;只有工具真实返回资源列表时才补全
resources_created。模型不得提交或猜测这些权威字段。