mcpField
A
aws-serverless-deployment

aws-serverless-deployment

github.com/awslabs云与 DevOps932152 次安装3 周前更新
代码仓库

关于 aws-serverless-deployment

AWS Serverless Deployment 是一项技能,帮助使用 SAM 或 CDK 构建并部署 AWS 无服务器应用。内容涵盖项目初始化、基础设施定义、部署工作流和 CI/CD,默认使用 CDK 与 TypeScript。

主要功能

  1. 01SAM 和 CDK 项目初始化
  2. 02基础设施模板与构造
  3. 03部署工作流和 CI/CD 流水线
  4. 04SAM 与 CDK 共存指南
  5. 05自动验证 SAM 模板的钩子

适用场景

  1. 01初始化 AWS 无服务器项目
  2. 02创建或检查 SAM 模板与 CDK 构造
  3. 03设置部署工作流或 CI/CD 流水线
  4. 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.md
cdk-project-setup.md
cdk-serverless-patterns.md
sam-cdk-coexistence.md
sam-project-setup.md

详细介绍

AWS 无服务器部署

使用 SAM 或 CDK 将无服务器应用部署到 AWS。此技能涵盖项目脚手架、IaC 模板、CDK 构造和模式、部署工作流、CI/CD 流水线,以及 SAM/CDK 共存。

有关 Lambda 运行时行为、事件源、编排、可观测性和优化,请参阅 aws-lambda 技能。

何时加载参考文件

根据用户正在处理的内容,加载相应的参考文件:

最佳实践

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

容器运行时设置
  1. 安装兼容 Docker 的容器运行时:sam_local_invoke 和基于容器的构建都需要此运行时
  2. 验证:使用适当的命令,例如 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 支持的情况下继续?”
  • 未经用户确认,不要继续

资源

评论

支持 Markdown