用途
该技能面向 DynamoDB 数据层的设计、审查与调试。它依据一组“DynamoDB 公理(axioms)”运行,目标是在缺乏应用其他上下文的情况下,产出一份可辩护的数据层设计。
主要能力
- 枚举访问模式,并据此选择分区键/排序键与 GSI,决定单表或多表布局。
- 提供参考架构:一个多租户看板任务板(TaskBoard)SaaS,覆盖 Cognito、CloudFront、HTTP API、Lambda、Streams、OpenSearch、AppSync Events、SQS/EventBridge、级联、幂等中间件等组成部分。
- 以分阶段流水线组织,每阶段一个工具:
- 设计(无脚本,产出访问模式列表与模式)
- 成本:
calculate_costs.py,读取dynamodb_data_model.json,写出cost_report.md - 部署:
deploy_model.py(需--yes-deploy) - 基准:
benchmark_model.py - 报告:
generate_perf_report.py - 拆除:
generate_teardown.py生成teardown.sh,经审阅后执行
- 另提供迭代设计循环脚本
iterate_design.py,将部署→基准→报告→成本包装为一轮人工驱动的回合。 - 内置设计公理、模式(Patterns)、冲突解决顺序(正确性 > 运维必要性 > 成本 > 风格)与术语表。
- 明确若干必须遵守的事实约束,例如:DynamoDB Streams 迭代器类型为 TRIM_HORIZON 与 LATEST;GSI 投影类型创建后不可变;容量模式切换有 24 小时冷却;单项写入本身即原子且支持 ConditionExpression;ConditionExpression 仅存在于写侧;单条项目上限 400 KB;BatchGetItem/BatchWriteItem 非原子;Reserved Capacity 仅适用于预置容量;条件失败仍消耗写容量;GSI 键模式创建后不可变等。
使用方式
技能可能以两种方式加载,需先确定加载方式:
- 通过 AWS MCP 的
retrieve_skill工具加载:技能不在本地文件系统,必须用retrieve_skill的file参数获取每个引用或脚本(如file="references/vector-search.md"或file="scripts/calculate_costs.py"),并从返回内容运行脚本;不要本地 file_read 这些路径。 - 本地安装:用相对路径从本地技能目录读取和运行文件。
${SKILL_DIR} 解析(适用于本地安装情形)有三种方式,按顺序取第一个成功的:已知 SKILL.md 所在路径;$DDB_SKILL_DIR 环境变量;使用附带的解析脚本 scripts/find_skill_dir.sh 或跨主机命令行搜索。解析后应导出:
export DDB_SKILL_DIR="$SKILL_DIR"
python3 "$DDB_SKILL_DIR/scripts/calculate_costs.py" --model dynamodb_data_model.json --output cost_report.md
规则:脚本一律以绝对路径调用,不要 cd 进技能目录,以免用户产物(dynamodb_data_model.json、cost_report.md 等)落错位置。若三种方式都无法解析目录,应停止并询问用户技能安装位置。
适用场景
- 设计或审查完整应用的数据层(多实体模式、多表布局、与流/搜索/通知的端到端组合)。
- 小范围问题:单表问题、查询成本计算、有针对性的调试问题。
- 需要通过成本估算、部署、基准测试与性能报告来验证或迭代设计。
限制
- 阶段 3–6 会创建真实 AWS 资源并产生真实账单,仅在用户明确同意后进入。
- 通过 MCP 加载时,脚本无法从返回字符串执行,因此成本估算或实时验证需要本地安装形式。
- 脚本通过 boto3 与 AWS CLI 使用环境凭证链,AWS MCP 服务器为推荐但非必需;MCP 形式下成本估算或实时验证不可行。
- 部署需
--yes-deploy;基准在超出cost_guardrail_usd且无--allow-spend时拒绝花费;拆除需用户确认审阅并执行bash teardown.sh --confirm。 - 不要读取
perf_raw.jsonl(体积大),它仅供阶段 5 使用。 - 产品定价、平台支持等具体事实资料中未逐一提供。