资讯动态

使用 AWS SST v4 (Ion) 以代码方式管理 AWS 资源:agentic-awesome-skills 技能实践指南

发布时间:2026/10/21 5:28:37 来源:尧图企业网站定制
AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载导读本文围绕 agentic-awesome-skills 仓库中的aws-sst-development技能SKILL.md同版副本见 plugins/agentic-awesome-skills/skills/aws-sst-development/SKILL.md展开系统讲解 SST v4Ion 引擎这一 Pulumi 驱动的基础设施即代码IaC框架的实战方法论如何定向阅读 SST 项目、如何区分通用约定与项目特定约定、如何编写/链接/测试/部署并排障sst.config.ts与infra/模块以及避免生产事故的关键红线。读完本文你将掌握一套从读仓库到改代码再到安全部署的完整工作节奏并理解每条规则背后的技术原理$transform、$interpolate、Pulumi 的 create-before-destroy 语义等可直接迁移到自己的 SST v4 AWS 项目。说明本技能在仓库中被登记为risk: critical、source_type: community、MIT 许可的开源技能其目录与索引元数据可在 data/catalog.json 与 data/skills_index.json 中检索到。一、技能定位SST v4Ion是什么什么时候该用它1.1 SST v4 的核心模型SST v4Ion 引擎是一个Pulumi 驱动的 IaC 框架你用 TypeScript 描述 AWS 资源由 SST/Pulumi 负责将声明对账reconcile到你的 AWS 账户中。它提供了两类资源表达方式高层组件sst.aws.*如Function、Bucket、Dynamo、Cron、Service、Router等一个组件会展开成多个底层 AWS 资源屏蔽大量样板原始 Pulumi 资源aws.*作为逃生舱escape hatch当高层组件覆盖不到的长尾需求出现时可以编写任意原始 Pulumi 资源。⚠️ 判断版本运行npx sst version确认你处于 v4/Ion识别特征是$config语法与.sst/platform/目录。v2/v3SST Classic基于 CDK是完全不同的框架本文所有模式均不适用。1.2 When to Use何时调用本技能根据 SKILL.md 的定义当你处于以下场景时应使用该技能编写或编辑sst.config.ts构建infra/模块sst.aws.Function/Bucket/Dynamo/Cron/Service/Router、sst.Secret、sst.Linkable、原始aws.*Pulumi 资源编写资源链接wiring resource links编写基础设施测试、执行部署、处理部署失败、迁移资源类型或重命名物理名称。1.3 外部事实的验证纪律SKILL.md 特别强调SST 与 Pulumi 均为第三方项目语法细节应以 Context7resolve-library-id→query-docs对象为sst或pulumi-aws为准AWS 侧事实服务配额、模型 ID、IAM action 名称、区域可用性应以 AWS 文档为准绝不能凭记忆。技能给出的模式是how怎么做官方文档是what是什么。二、模式选择被调用时的快速路由SKILL.md 提供了一个按情境跳转的决策表这是使用该技能的第一入口。原文档将其路由到references/authoring.md、references/testing.md、references/deploy-and-troubleshoot.md三个参考章节在本文中我们把对应章节内容直接展开供读者对照情境应去往的参考新项目或向现有 SST 应用添加资源/模块Author见本文四、Author编写与链接资源将一个模块的输出接到另一个模块links、SSM、IAM 范围Author见本文四、Author编写与链接资源之共享模式为基础设施编写测试防止改动被静默破坏Test见本文五、Test源码级 Vitest 断言执行部署或部署刚刚失败Deploy/Operate见本文六、Deploy/Operate部署与排障在 Pulumi 类型间迁移资源、重命名物理名称Deploy/Operate见本文六、Deploy/Operate部署与排障之迁移注意每次编辑前都应先读对应参考内容——它们承载着每条规则背后的why为什么这比规则本身更重要。三、Orient动手前先读懂仓库SST 项目约定俗成但不完全相同。SKILL.md 建议在编辑前按以下顺序建立项目地图让你的改动匹配房子风格house style而不是与之对抗sst.config.ts应用名、home、provider/region、defaultTags、任何全局$transformNode 运行时固定、bundle 修复以及run()中importinfra/模块的顺序。导入顺序就是依赖顺序务必尊重它infra/每个领域一个文件storage、functions、api、observability……资源在这里声明。检查是否存在infra/CLAUDE.md——这些项目会把 IaC 专属规则放在那里它是首先要读的、价值最高的单个文件infra/tests/源码级 Vitest 断言用于钉住资源不变量。若存在你的改动必须让它们保持绿色且很可能需要新增断言package.json/.nvmrc包管理器npm 还是 pnpm、Node 版本以及实际安装的sst/pulumi版本。这一读仓库优先的思想与本仓库整体理念一致catalog 数据与技能内容索引data/skills_index.json、data/aas-v1/skill-content-index.v1.json同样强调在引用技能前先建立完整上下文。四、Author编写与链接资源4.1 通用约定Universal任何 SST v4 AWS 项目都适用以下原则对所有 SST v4 AWS 项目成立可以放心到处应用① 在一个地方刻意控制 Node 运行时。不要让运行时取决于安装的 SST 的默认值。惯用法是在run()中加入单个全局 transform$transform(sst.aws.Function, (args) { args.runtime ?? nodejs24.x; });这里用??是正确的transform 运行在组件应用自身默认值之前因此只在用户未显式设置时兜底。较新的 SST 默认已经是较新的 Node 运行时所以先通过 Context7 检查已安装版本的默认值该 transform 本质上是版本无关保险——防止未来 SST 降级时静默改变你的整个函数舰队运行时。② 绝不要把 PulumiOutputT插进普通 JS 模板字符串。必须使用$interpolate或pulumi.interpolate。一个裸的顶层${bucket.arn}/*会把Output字符串化成一个[OutputT]占位符产生一个只能在部署时才失败的坏 ARN它类型检查能过、sst dev也能正常跑。修复方式是$interpolate${bucket.arn}/* 。这个问题曾经造成过生产部署中断。// ❌ 错误类型检查通过、dev 正常但部署时 ARN 是坏的 const policy new aws.iam.PolicyStatement({ actions: [s3:GetObject], resources: [${bucket.arn}/*], }); // ✅ 正确$interpolate 延迟求值 const policy new aws.iam.PolicyStatement({ actions: [s3:GetObject], resources: $interpolate${bucket.arn}/*, });③ 在 Pulumi 类型之间迁移资源默认走两个 PR。Pulumi 是 create-before-destroy 语义因此对于有唯一性约束的 AWS 名称bucket、IAM role、gateway旧资源仍占用该名称创建新资源会以ConflictException失败。两个连续部署先拆除、再重建是保守默认aliases:、pulumi import、状态手术state surgery在某些情况下可以桥接身份但必须经过评审的计划。④ 优先使用类型化的sst.aws.*/aws.*资源而不是aws.cloudcontrol.Resource逃生舱。CloudControl 的输出是字符串类型stringly-typed且oneOf字段无法干净地 patch。仅在尚无类型化资源时使用它一旦有类型化资源发布就应迁离。4.2 项目特定默认Project-specific采纳但需逐仓库确认以下是这些项目共同选择的默认值可为了保持一致性而采纳但每个仓库可能不同需确认区域ap-northeast-1、home: aws、defaultTags携带Project/Stage/ManagedBy: sst按 Stage 门控生命周期removal: stage prod ? retain : remove, protect: stage prod,这样生产资源在栈拆除时得以保留非生产预览环境能自动清理SSM Parameter Store 作为图外契约out-of-graph contract前缀为/{app}/{stage}/{domain}/...——供不在 Pulumi 图内的消费者使用CI 脚本、兄弟应用、运维人员。同一应用的 Lambda 之间优先用 SSTlink:它会接通真实依赖边并授予 IAM不要把同应用共享绕道 SSMrun()内使用懒加载await import(./infra/module)让sst dev热重载保持轻量。注意对测试而言模块顶层new sst.aws.*在 import 时仍会执行除非包在工厂函数里——见下节每个 infra 模块配源码级 Vitest 测试——轻量、符合房子风格的回归网直接断言源码文本资源名、索引形状、IAM 范围。这是一个刻意选择不是 SST 的限制Pulumi 确实支持运行时 mockpulumi/pulumi/runtime来对带真实逻辑的模块做行为图测试。源码断言不能替代 preview-deploy smoke test可观测性门禁每个新的 Lambda/queue/schedule 在合并前都要有 alarm 和结构化日志。是否强制取决于项目但这是廉价的保险。当你引入一条约定时要说明它属于哪个桶这是通用规则还是匹配本仓库风格让用户能刻意覆盖项目特定约定。4.3 共享模式速查图内共享in-graph同一 SST 应用内用link:传递资源引用——它建立真实依赖边并自动授予 IAM 权限图外共享out-of-graphCI 脚本、兄弟应用、运维人员等非图内消费者通过 SSM Parameter Store/{app}/{stage}/{domain}/...前缀读取产出值IAM 范围跨资源引用配合$interpolate进行最小权限作用域限定。五、Test源码级 Vitest 断言基础设施测试的推荐做法是对每个 infra 模块写源码级 Vitest 测试断言对象是源码文本本身——资源名称、索引形状index shapes、IAM 作用域。这类测试是轻量级的回归网能在不真正对 AWS 发起调用的情况下钉住资源不变量是对改一处、悄悄破坏另一处的廉价防护运行时执行npx vitest或仓库test脚本。需要指出的是源码断言不能替代preview-deploy smoke test当模块包含真实逻辑时也可选用 Pulumi 运行时 mockpulumi/pulumi/runtime做行为级图测试——这是刻意权衡而非框架限制。六、Deploy/Operate部署与排障6.1 部署前检查运行npx sst diff和/或tsc --noEmit在部署前捕获类型错误和计划错误任何sst deploy之前先用aws sts get-caller-identity确认目标账户——防止把资源部署到错误的 AWS 账户部署后清理导出的状态文件它们包含账户 ID 和 ARN绝不能残留在/tmp或聊天历史中。6.2 迁移Migrations要点在 Pulumi 类型之间迁移资源、或重命名物理名称时默认拆成两个 PRteardown → recreate规避 create-before-destroy 下的ConflictException如需保留身份连续性可选aliases:、pulumi import或状态手术但必须先有经过评审的计划任何不可逆操作部署、sst remove、资源类型迁移都要向用户标明目标账户迁移按两个 PR 而非一个规划。6.3 可观测性门禁每个新增的 Lambda/queue/schedule 在合并前都应配套 alarm 与结构化日志。这条规则是否强制取决于项目但从实践看是廉价的保险——生产事故往往始于无告警的静默失败。七、工作节奏Working Rhythm六步闭环SKILL.md 将完整流程归纳为六步可直接照做Orient按第三节建立 config、模块、测试、工具链的项目地图Verify任何不明显的语法都用 Context7 / AWS docs MCP 验证不要猜组件选项名Author按第四节编写资源/模块并匹配周边文件的注释密度与命名——这些项目大量注释why在注释密集的文件里写一行简短的注释会像是一种回归Test新增或更新源码级断言并运行npx vitest或test脚本再跑npx sst diff/tsc --noEmit捕获计划与类型错误Deploy/operate按第六节执行部署前用aws sts get-caller-identity确认账户Clean up清理导出的状态文件含账户 ID 与 ARN不要留在/tmp或对话历史中。八、What good looks like做对了应该是什么样改动是满足需求的最小 diff落在正确的infra/模块并按依赖顺序接入run()每个 Lambda 通过全局 transform 获得正确运行时没有手设runtime除非刻意偏离——例如 Python 函数跨资源引用使用link:图内和/或$interpolate作用域的 IAM其他工具消费的产出值发布到 SSM 的 stage 前缀下新基础设施有匹配的源码级测试且既有测试套件保持绿色AWS 侧事实通过 docs MCP、SST/Pulumi 语法通过 Context7 确认而非依赖记忆任何不可逆操作部署、sst remove、资源类型迁移都向用户标注目标账户迁移按两个 PR 规划。九、使用示例与限制9.1 调用示例User request: Use aws-sst-development for this task: SST v4 (Ion) expert for managing AWS resources as code with the Pulumi-backed framework.9.2 使用限制Limitations仅当任务与上游来源和本地项目上下文明确匹配时使用本技能在应用改动前务必验证命令、生成的代码、依赖、凭据及外部服务行为不要把示例当作环境特定测试、安全评审或用户对破坏性/高成本操作的批准之替代品。十、小结aws-sst-development技能将 SST v4Ion的生产级实践浓缩为一套可执行的约定体系以定向读仓库为前提以通用 vs 项目特定二分法组织约定以源码级测试兜底以双 PR 迁移守护生产安全。其核心红线——OutputT必须用$interpolate、运行时集中用$transform控制、部署前确认账户、图内用link:图外用 SSM——每一条都来自真实多栈项目以生产事故换来的教训。读者可将本文作为使用该技能的完整工作手册也可以把它当作自建 SST v4 项目规范时的参照蓝本涉及具体组件选项与 AWS 侧事实时请始终按文档要求回到 Context7 与 AWS 官方文档做最终核验。赞分享AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载相关推荐使用 agentic-awesome-skills 的 aws-cost-cleanup 技能自动化清理 AWS 闲置资源并消除云成本浪费使用 agentic awesome skills 的 aws cost cleanup 技能自动化清理 AWS 闲置资源并消除云成本浪费 导读 本文围绕 agAI 技能AI 插件人工智能Kiro CLI 集成指南在 AWS 代理式 AI IDE 中安装与调用 Agentic Awesome SkillsKiro CLI 集成指南在 AWS 代理式 AI IDE 中安装与调用 Agentic Awesome Skills 本指南以 docs_zh CN/useAI 技能AI 插件人工智能MAS 激活脚本实战指南Windows 与 Office 激活从入门到排错MAS 激活脚本实战指南Windows 与 Office 激活从入门到排错 电脑右下角挂着未激活水印、Office 隔三差五弹授权提示是不少机器装完系统运维上一篇使用 OpenNMT-tf 训练索拉尼库尔德语ckb→英语小规模 NMT 模型NMTSmallV1 配方全解析下一篇beets thumbnails 插件为专辑文件夹生成 freedesktop 兼容缩略图创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑