mcpField
A
amazon-web-services

amazon-web-services

github.com/oakoss云与 DevOps2089 次安装10 周前更新
代码仓库

关于 amazon-web-services

amazon-web-services 是面向使用 AWS 的开发者和架构师的云开发技能,涵盖 JavaScript SDK v3 与 AWS CDK v2。内容涉及云服务集成、基础设施即代码及常见配置与安全实践。

主要功能

  1. 01AWS SDK for JavaScript v3 模块化用法
  2. 02AWS CDK v2 基础设施即代码
  3. 03Lambda、S3 与 DynamoDB 模式
  4. 04SQS、SNS 与事件消息
  5. 05IAM 最小权限实践
  6. 06CDK 模板断言与快照测试

适用场景

  1. 01构建无服务器应用
  2. 02部署容器与托管数据库
  3. 03设置事件驱动系统
  4. 04使用 TypeScript 定义云基础设施

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oakoss/agent-skills --skill amazon-web-services

安装后在 Claude Code 中输入/amazon-web-services确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cdk-infrastructure.md
containers-ecs-fargate.md
dynamodb.md
iam-security.md
lambda-functions.md
messaging-sqs-sns.md
networking-cloudfront-route53.md
s3-storage.md

详细介绍

Amazon Web Services

概述

Amazon Web Services(AWS)提供云计算服务,用于构建可扩展的应用程序。AWS SDK for JavaScript v3 使用模块化软件包(@aws-sdk/client-*),并提供一流的 TypeScript 支持。AWS CDK v2 使用 TypeScript 构造定义基础设施即代码,并将其合成为 CloudFormation 模板。

适用场景: 构建云原生应用程序、无服务器架构、容器部署、托管数据库、CDN 分发、事件驱动系统或基础设施即代码。

不适用场景: 简单的静态网站(可考虑 Vercel/Netlify)、仅用于本地开发的工具、无需部署到云端的项目。

快速参考

服务 / 模式API / 构造要点
S3 上传PutObjectCommand从 @aws-sdk/client-s3 模块化导入
S3 预签名 URLgetSignedUrl()来自 @aws-sdk/s3-request-presigner,最长 7 天
Lambda 函数new lambda.Function()CDK L2 构造,设置 memorySize 和 timeout
Lambda 层new lambda.LayerVersion()在多个函数间共享代码和依赖项
IAM 策略new iam.PolicyStatement()始终遵循最小权限原则,避免使用 * 资源
DynamoDB 表new dynamodb.Table()单表设计,可变负载使用 PAY_PER_REQUEST
DynamoDB GSItable.addGlobalSecondaryIndex()单独设置吞吐量,最终一致性
SQS 队列new sqs.Queue()为失败消息配置 DLQ,使用 WaitTimeSeconds 进行长轮询
SNS 主题new sns.Topic()扇出到 SQS、Lambda、HTTP 端点
CloudFrontnew cloudfront.Distribution()S3 源站使用 OAC,配置缓存策略
RDS/Auroranew rds.DatabaseCluster()使用 RDS Proxy 进行连接池管理
ECS Fargatenew ecs_patterns.ApplicationLoadBalancedFargateService()更高级别的模式构造
Route 53new route53.ARecord()为 AWS 资源使用别名记录
Secrets Managersecretsmanager.Secret.fromSecretNameV2()自动轮换,绝不要硬编码密钥
CDK 堆栈new cdk.Stack(app, 'Id')每个部署单元使用一个堆栈
CDK 测试Template.fromStack(stack)精细断言和快照测试

常见错误

错误正确做法
使用 AWS SDK v2(aws-sdk)使用模块化 v3(@aws-sdk/client-*),减小打包体积
IAM Action: "*" 或 Resource: "*"将范围限定为特定操作和资源 ARN
SQS 队列没有 DLQ始终为失败的消息配置死信队列
使用 DynamoDB 扫描来查询先设计访问模式,再使用带 GSI/LSI 的 Query
在代码或环境变量中硬编码密钥使用 Secrets Manager 或 SSM Parameter Store
Lambda 打包 node_modules 时未进行摇树优化使用 NodejsFunction 和 esbuild 打包
有状态资源未设置 RemovalPolicy为生产数据库和存储桶设置 RemovalPolicy.RETAIN
每个 CRUD 操作都创建一个 Lambda将相关操作分组,并使用事件路由
RDS 未使用连接池使用 RDS Proxy,或限制每个 Lambda 的 max_connections
CloudFront 未设置缓存策略明确定义 CachePolicy,以控制 TTL 和标头
CDK 测试只使用快照将细粒度断言与快照测试结合使用
预签名 URL 未指定内容类型上传时在 PutObjectCommand 中包含 ContentType

委派

  • 基础设施模式:使用 Explore Agent 探索 AWS 架构
  • 安全审查:使用 Task Agent 审核 IAM 策略
  • 成本优化:使用 Task Agent 调整资源规格

如果有 docker 技能,请将容器构建模式和 Dockerfile 优化委派给它。 如果有 github-actions 技能,请将 AWS 部署的 CI/CD 流水线模式委派给它。 如果有 typescript-patterns 技能,请将 CDK 代码中使用的 TypeScript 严格模式和类型模式委派给它。 如果有 application-security 技能,请将 AWS 安全最佳实践和威胁建模委派给它。

参考资料

评论

支持 Markdown