المهارات cdk-patterns
📦

cdk-patterns

آمن

构建 AWS CDK 基础设施模式

使用 CDK 构建设计生产就绪的 AWS 基础设施。应用经过验证的模式来构建无服务器 API、容器和数据管道,使用可复用的 L2/L3 构造。

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "cdk-patterns". 创建一个带有 Lambda 和 DynamoDB 的无服务器 API

النتيجة المتوقعة:

生成一个完整的 CDK 构造,包含 API Gateway 集成、具有适当运行时配置的 Lambda 函数、具有按需计费功能的 DynamoDB 表、使用 grantReadWriteData 的 IAM 权限,以及为可观测性启用的 X-Ray 追踪。

استخدام "cdk-patterns". 审查我的 CDK 栈是否符合最佳实践

النتيجة المتوقعة:

提供具体建议:将 CfnFunction 替换为 lambda.Function L2 构造,为有状态资源添加 RemovalPolicy.RETAIN,使用 table.grantReadWriteData 而不是内联策略实现最小权限 IAM,并添加 cdk.Tags 用于资源组织。

التدقيق الأمني

آمن
v1 • 2/25/2026

All static analysis findings are false positives. The 'Dynamic function constructor' at line 53 is actually a CDK Lambda construct (new lambda.Function). The 'Ruby/shell backtick execution' detections are markdown code block delimiters (```typescript), not shell commands. The 'Weak cryptographic algorithm' findings reference description text, not actual crypto code. This skill contains only documentation and example CDK TypeScript code with no executable security risks.

1
الملفات التي تم فحصها
80
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

无服务器 API 开发

使用 API Gateway、Lambda 和 DynamoDB 构建生产就绪的无服务器 API,启用适当的 IAM 权限和监控。

可复用的基础设施构造

创建组织标准的 L3 构造,将最佳实践编码到跨团队的一致性基础设施部署中。

CDK 代码审查和优化

审查现有 CDK 代码中的反模式、安全问题,以及使用更高级别构造的机会。

جرّب هذه الموجهات

基础 CDK 栈生成
创建一个 TypeScript 的 CDK 栈,部署带有 S3 存储桶的 Lambda 函数。使用 L2 构造,应用移除策略,并启用 X-Ray 追踪。
无服务器 API 模式
为带有 API Gateway、Lambda 和 DynamoDB 的无服务器 API 生成可复用的 CDK 构造。包括适当的 IAM 权限、环境变量和 CloudWatch 告警。
多栈架构
设计一个多栈 CDK 应用程序,将有状态资源(RDS、S3)与无状态计算(Lambda、ECS)分离。展示如何在栈之间传递引用。
CDK 代码审查
审查此 CDK 栈是否存在安全反模式、IAM 过度权限,以及使用 L2 构造替代 L1 的机会。提出具体的改进建议。

أفضل الممارسات

  • 使用 L2 构造而非 L1 (Cfn*) 构造,以获得更安全的默认值和更少的样板代码
  • 将有状态资源(数据库、存储桶)与无状态计算分离到不同的栈中,以实现独立的生命周期管理
  • 使用 grant 方法而不是宽泛的内联策略,将所有 IAM 角色的最小权限原则应用到所有 IAM 角色

تجنب

  • 当存在 L2 替代方案时使用 L1 (Cfn*) 构造,导致更多代码和更弱的安全保证
  • 硬编码账户 ID 或区域,而不是使用 cdk.Aws.ACCOUNT_ID 和 cdk.Aws.REGION 以保持可移植性
  • 在同一栈中部署有状态和无状态资源,不必要地耦合它们的生命周期

الأسئلة المتكررة

L1 和 L2 CDK 构造之间有什么区别?
L1 构造 (Cfn*) 是从 CloudFormation 自动生成的,与资源 1:1 映射。L2 构造提供更高级别的抽象,具有合理的默认值、验证和辅助方法。当可用时始终优先使用 L2 构造。
如何在 CDK 中处理机密?
使用 AWS Secrets Manager 或 SSM Parameter Store。使用 secret.secretValueFromJson() 引用机密,并使用 secret.grantRead(handler) 授予 Lambda 函数读取访问权限。切勿在 CDK 代码中硬编码机密。
推荐的栈分离策略是什么?
将有状态资源(数据库、S3 存储桶)与无状态计算(Lambda、ECS)分离。这允许独立部署,并防止在更新计算资源时意外丢失数据。
如何在 CDK 栈中启用监控?
在 Lambda 函数上启用 X-Ray 追踪,使用 tracing: lambda.Tracing.ACTIVE。为错误率、延迟和限流添加 CloudWatch 告警。使用 CDK Monitoring 构造或 aws-cdk-lib/aws-cloudwatch 进行告警定义。
我可以使用 Python 或 Java 而不是 TypeScript 来使用此技能吗?
可以。这些模式是与语言无关的。该技能可以生成 TypeScript、Python 或 Java 的 CDK 代码。底层构造和最佳实践在所有语言中保持不变。
如何处理栈之间的循环依赖?
将共享资源提取到专用的基础栈中。使用构造函数 props 或通过栈导出和 Fn.importValue() 的跨栈引用,在栈之间传递资源引用(ARN、ID)。

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md