SuperAPI AI 工具集

amazon-dynamodb

数据与分析

查看项目

更新于 10-16 07:30

技能介绍

用途

该技能面向 DynamoDB 数据层的设计、审查与调试。它依据一组“DynamoDB 公理(axioms)”运行,目标是在缺乏应用其他上下文的情况下,产出一份可辩护的数据层设计。

主要能力

  • 枚举访问模式,并据此选择分区键/排序键与 GSI,决定单表或多表布局。
  • 提供参考架构:一个多租户看板任务板(TaskBoard)SaaS,覆盖 Cognito、CloudFront、HTTP API、Lambda、Streams、OpenSearch、AppSync Events、SQS/EventBridge、级联、幂等中间件等组成部分。
  • 以分阶段流水线组织,每阶段一个工具:
    1. 设计(无脚本,产出访问模式列表与模式)
    2. 成本:calculate_costs.py,读取 dynamodb_data_model.json,写出 cost_report.md
    3. 部署:deploy_model.py(需 --yes-deploy)
    4. 基准:benchmark_model.py
    5. 报告:generate_perf_report.py
    6. 拆除: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 使用。
  • 产品定价、平台支持等具体事实资料中未逐一提供。