关于 aws-serverless-deployment
AWS Serverless Deployment 是一项技能,帮助使用 SAM 或 CDK 构建并部署 AWS 无服务器应用。内容涵盖项目初始化、基础设施定义、部署工作流和 CI/CD,默认使用 CDK 与 TypeScript。
主要功能
- 01SAM 和 CDK 项目初始化
- 02基础设施模板与构造
- 03部署工作流和 CI/CD 流水线
- 04SAM 与 CDK 共存指南
- 05自动验证 SAM 模板的钩子
适用场景
- 01初始化 AWS 无服务器项目
- 02创建或检查 SAM 模板与 CDK 构造
- 03设置部署工作流或 CI/CD 流水线
- 04规划从 SAM 迁移到 CDK
MCP 相关
该技能通过 AWS Serverless MCP Server 创建项目、生成基础设施代码并进行部署。默认启用写入权限;访问敏感数据需额外配置。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ awslabs/ agent-plugins --skill aws-serverless-deployment安装后在 Claude Code 中输入/aws-serverless-deployment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cdk-lambda-constructs.mdcdk-project-setup.mdcdk-serverless-patterns.mdsam-cdk-coexistence.mdsam-project-setup.md详细介绍
AWS 无服务器部署
使用 SAM 或 CDK 将无服务器应用部署到 AWS。此技能涵盖项目脚手架、IaC 模板、CDK 构造和模式、部署工作流、CI/CD 流水线,以及 SAM/CDK 共存。
有关 Lambda 运行时行为、事件源、编排、可观测性和优化,请参阅 aws-lambda 技能。
何时加载参考文件
根据用户正在处理的内容,加载相应的参考文件:
- SAM 项目设置、模板、部署工作流、本地测试或容器镜像 -> 请参阅 references/sam-project-setup.md
- CDK 项目设置、构造、CDK 测试或 CDK 流水线 -> 请参阅 references/cdk-project-setup.md
- CDK Lambda 构造、NodejsFunction、PythonFunction或 CDK Function -> 请参阅 references/cdk-lambda-constructs.md
- CDK 无服务器模式、API Gateway CDK、Function URL CDK、EventBridge CDK、DynamoDB CDK或 SQS CDK -> 请参阅 references/cdk-serverless-patterns.md
- SAM 和 CDK 共存、从 SAM 迁移到 CDK或通过 CDK 使用 sam build -> 请参阅 references/sam-cdk-coexistence.md
最佳实践
SAM
- 建议:针对使用场景使用
sam_init和合适的模板 - 建议:在
Globals部分为超时、内存、运行时和跟踪设置全局默认值 - 建议:使用
samconfig.toml中按环境划分的配置区段来部署到多个环境 - 建议:涉及原生依赖项时,使用
sam build --use-container - 不建议:不了解资源配置就从网上复制粘贴模板
- 不建议:在模板中硬编码资源 ARN 或账户 ID——请使用
!Ref、!GetAtt和!Sub
CDK
- 建议:使用 TypeScript——类型检查可在合成时、调用任何 AWS API 之前发现错误
- 建议:优先使用 L2 构造和
grant*方法,而非 L1 构造和原始 IAM 语句 - 建议:将有状态和无状态资源分隔到不同的堆栈中;为有状态堆栈启用终止保护
- 建议:将
cdk.context.json提交到版本控制中——它会缓存 VPC/AZ 查询结果,确保合成结果具有确定性 - 建议:使用
aws-cdk-lib/assertions编写单元测试;断言有状态资源的逻辑 ID,以检测意外替换 - 建议:在 CI 中每次部署前使用
cdk diff检查变更 - 不建议:硬编码账户 ID 或区域字符串——请使用
this.account和this.region - 不建议:在生产环境中不通过流水线直接使用
cdk deploy - 不建议:跳过
cdk bootstrap——没有 CDK toolkit 堆栈,部署将会失败
配置
AWS CLI 设置
此技能要求在主机上配置 AWS 凭证:
验证访问权限:运行 aws sts get-caller-identity,确认凭证有效
SAM CLI 设置
验证:运行 sam --version
容器运行时设置
- 安装兼容 Docker 的容器运行时:
sam_local_invoke和基于容器的构建都需要此运行时 - 验证:使用适当的命令,例如
docker --version或finch --version
AWS Serverless MCP Server
默认启用写入权限。 插件在 .mcp.json 中默认附带 --allow-write,因此 MCP 服务可以代表用户创建项目、生成 IaC 并部署。
默认不允许访问敏感数据(例如 Lambda 和 API Gateway 日志)。如需授予此权限,请在 .mcp.json 中添加 --allow-sensitive-data-access。
SAM 模板验证钩子
此插件包含一个 PostToolUse 钩子,会在编辑 template.yaml 或 template.yml 后自动运行 sam validate。如果验证失败,错误会作为系统消息返回,以便你立即修复。此钩子需要安装 SAM CLI 和 jq;如果缺少其中任意一个,则会跳过验证并显示系统消息。用户可以通过 /hooks 禁用此钩子。
验证:运行 jq --version
IaC 框架选择
默认:CDK
覆盖语法:
- “使用 CloudFormation” → 生成 YAML 模板
- “使用 SAM” → 生成 YAML 模板
未指定时,始终使用 CDK
CDK 的语言选择
默认:TypeScript
覆盖语法:
- “使用 Python” → 生成 Python 代码
- “使用 JavaScript” → 生成 JavaScript 代码
未指定时,始终使用 TypeScript
错误场景
无法使用 Serverless MCP 服务
- 告知用户:“AWS Serverless MCP 无响应”
- 询问:“是否在没有 MCP 支持的情况下继续?”
- 未经用户确认,不要继续