关于 amazon-aurora-postgresql
面向 Aurora PostgreSQL 的模块化技能,将请求分派到集群创建、无服务器指导、存储选择、承诺定价和升级等子技能。它还规定操作执行流程及变更确认规则。
主要功能
- 01将请求路由至专用子技能
- 02指导集群创建路径
- 03提供无服务器容量建议
- 04比较存储与承诺选项
- 05规划数据库版本升级
适用场景
- 01创建 Aurora PostgreSQL 集群
- 02评估无服务器容量需求
- 03比较存储或承诺方案
- 04规划数据库版本升级
MCP 相关
执行 AWS 操作时,若 AWS MCP 服务可用则优先推荐;否则使用 AWS CLI 或 SDK。变更操作须经用户确认。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill amazon-aurora-postgresql安装后在 Claude Code 中输入/amazon-aurora-postgresql确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/commitment-pricing-basics.mdcommitment-pricing-instructions.mdcommitment-pricing-mechanics.mdcommitment-pricing-scenarios.mdcommitment-pricing-skipped-cluster.mdcommitment-pricing-worked-examples.mdcreate-instructions.mdexpress-create-comparison.mdexpress-create-connect-iam.mdexpress-create-constraints.mdexpress-create-documentation-links.mdexpress-create-feature-overview.mdexpress-create-instructions.mdexpress-create-migration-pgdump.mdexpress-create-migration.mdexpress-create-use-cases.mdio-optimized-data-collection.mdio-optimized-instructions.mdio-optimized-pricing-tables.mdio-optimized-pricing.mdio-optimized-worked-examples.mdserverless-advisory-concepts.mdserverless-advisory-formulas-and-examples.mdserverless-advisory-instructions.mdserverless-advisory-migration.mdserverless-advisory-worked-examples.mdshared-foundation-security-considerations.mdupgrade-planning-documentation-links.mdupgrade-planning-instructions.mdupgrade-planning-lts-recommendation.md详细介绍
Amazon Aurora PostgreSQL
一个模块化的 Aurora PostgreSQL 工具包,按子技能注册表组织。每个子技能负责 Aurora PostgreSQL 的一个工作领域。路由器会根据用户意图匹配合适的子技能,然后只加载所需的参考资料。(对于 Aurora MySQL,请使用 amazon-aurora-mysql 技能。)
操作流程(按顺序执行)
- 路由 — 根据 触发短语 列,将请求匹配到相应的子技能(根据含义匹配,而非逐字匹配),然后通过 适用场景 列确认。
- 加载 — 使用
file_read读取匹配子技能的references/{id}-instructions.md,并告知用户该路径。不要仅凭一般知识回答匹配到的子技能问题。 - 分析 / 建议 — 完成子技能的工作;用户提供输入时,运行随附脚本(参见“脚本”)。
- 如果用户请求变更 — 根据安全防护等级进行分类,向用户确认,应用资源标签,然后执行(优先使用 MCP,失败时改用 CLI)。
- 呈现结果 — 使用包含美元金额 / ACU 数值的表格,并标注建议;不展示推导或算术步骤。
边界情况:如果请求涉及多个子技能,则依次执行(每次加载一个 instructions.md)。如果没有匹配的子技能,则直接根据 Aurora PostgreSQL 知识作答。如果脚本或 MCP/CLI 调用失败,则显示错误并建议修复方法,然后再重试。以下编号的全局规则是对这些步骤的详细说明。
子技能注册表
列含义: 触发短语 = 用于匹配请求的关键词索引(步骤 1)。何时路由至此 = 确认匹配的决策逻辑。后续步骤 = 此子技能完成后可作为自然后续选项提供给用户的子技能(不会自动串联);来源 = 通常会路由至此子技能的其他子技能。后续步骤/来源仅用于引导用户,不会自动执行。
| ID | 名称 | 何时路由至此 | 触发短语 | 来源 | 后续步骤 |
|---|---|---|---|---|---|
create | 创建集群 | 路由 Aurora PostgreSQL 集群创建请求。默认采用快捷配置(单次 API 调用,无 VPC),路由至 express-create。需要 VPC、自定义 KMS、自定义参数或指定引擎版本时,路由至完整配置。 | 创建集群、新数据库、设置 Aurora PostgreSQL、开始使用、需要 PostgreSQL 数据库、配置 | — | express-create、serverless-advisory、io-optimized |
express-create | 快捷配置 | 通过单次 API 调用的快捷流程配置 Aurora PostgreSQL 无服务器集群。使用 AWS 管理的连接(无客户 VPC)。**仅通过 Internet Access Gateway 进行 IAM 身份验证——无需主密码。**创建后通过 IAM 身份验证令牌连接(aws rds generate-db-auth-token)。适用于无需 VPC、自定义 KMS 或自定义参数组的情况。需要完整配置时,路由回 create。 | 快捷配置、快捷创建、Internet Access Gateway、单次 API 调用、Aurora PostgreSQL 无服务器快速入门、无 VPC、IAM 身份验证令牌、如何连接快捷集群 | create | — |
serverless-advisory | Aurora 无服务器咨询 | 处理所有 Aurora 无服务器相关问题:ACU 规格、缩放至零的行为和兼容性、从预置集群迁移至无服务器集群、容量规划以及功能限制。 | ACU 规格、Aurora 无服务器、缩放至零、从预置迁移至无服务器、需要多少 ACU、容量、自动扩缩、RDS Proxy 兼容性、与缩放至零不兼容、无服务器限制 | create(可选) | commitment-pricing |
io-optimized | I/O 优化存储 | 评估是否要从 Aurora Standard 切换至 I/O-Optimized(aurora-iopt1)。采用 25% 的 I/O 成本阈值规则。 | I/O-Optimized、aurora-iopt1、切换存储类型、25% 阈值、I/O 成本过高、存储比较 | — | — |
commitment-pricing | 承诺定价 | 比较预置集群的预留实例与 Database Savings Plans,以及 Aurora 无服务器集群仅适用的 DSP。分析 1 年与 3 年方案。 | 预留实例、RI、Savings Plan、DSP、1 年与 3 年、承诺、成本优化、支付过多 | serverless-advisory(可选) | — |
upgrade-planning | 升级规划 | 规划 Aurora PostgreSQL 的主要版本和次要版本升级。提供 LTS 版本指导、升级前/后检查清单以及蓝绿部署建议。 | 升级、版本、LTS、升级前检查清单、升级后、主要版本、次要版本、生命周期结束、弃用 | — | — |
Express 与 Full 配置 — 决策矩阵
路由创建请求(子技能 create)时,请使用此矩阵选择路径。对于 Aurora PostgreSQL,默认使用 Express;只有在存在任意一项“Full”触发条件时,才路由到 Full 配置。不要让用户选择——自行决定,然后说明选择了哪条路径及原因。
| 需求 / 信号 | Express | Full 配置 |
|---|---|---|
| 默认 PostgreSQL 创建,无特殊网络配置 | ✅ 默认 | — |
| 快速入门 /“无需设置 VPC” /“几秒内就绪” | ✅ | — |
| 客户 VPC、子网组或特定安全组 | — | ✅ 必须 |
| 客户管理的 KMS 密钥(CMK) | — | ✅ 必须 |
| 创建时使用自定义 DB 集群参数组 | — | ✅ 必须 |
| 用户指定并固定特定引擎版本 | — | ✅ 必须(有固定版本的意图 = 不适用 Express) |
| Aurora MySQL | 不适用 | 使用 amazon-aurora-mysql(Express 仅支持 PG) |
注意:任何一项 Full 触发条件都会使 Express 不再适用——在路由说明中列出你匹配到的所有触发条件。Express 集群仍可在创建后自定义(例如,创建后可以应用自定义参数组),因此未来的需求本身并不是一开始就使用 Full 的理由。完整的流程说明见 references/express-create-instructions.md 和 references/create-instructions.md——加载这些文件以查看实际步骤。
全局规则(适用于每项子技能)
-
执行,而不只是建议。 用户请求操作并确认后,应直接执行,而不是只给出要运行的命令。AWS MCP 服务是在可用时推荐的执行路径(采用沙盒隔离、通过 IAM 认证并记录审计日志)——优先使用它。MCP 工具不可用时(例如 Claude Code、Cursor 或其他非 MCP 主机),直接使用 AWS CLI / SDK 执行相同的
aws rds ...操作。只有在当前环境中确实无法执行时,才向用户提供完整的 CLI 命令供其运行。 -
变更前确认。 执行任何创建或修改操作前,必须先向用户确认。未经明确确认(“是”“继续”“已确认”“开始吧”),不得执行。
-
资源标记(创建资源时始终应用)。 创建任何集群或实例时,始终包含以下标记:
--tags Key=created_by,Value=aurora-skill Key=generation_model,Value={your-model-id}如果知道你的模型 ID,则使用该 ID;如果无法可靠地确定,则使用Value=unknown——绝不要因标记而阻止创建。即使用户没有提及标记,也要包含这些标记。如果用户提供了其他标记,将这些标记追加到用户的标记中。 -
安全防护措施。
第 1 级 — 确认(只需是 / 否确认,无需风险说明):
create-db-cluster、create-db-cluster --with-express-configurationcreate-db-instancemodify-db-cluster --serverless-v2-scaling-configuration(ACU 扩缩)modify-db-cluster --backup-retention-periodmodify-db-cluster --deletion-protection/--no-deletion-protectionmodify-db-cluster --enable-cloudwatch-logs-exportsmodify-db-cluster --preferred-backup-windowmodify-db-cluster --enable-http-endpoint(Data API)add-tags-to-resource、remove-tags-from-resourceTier 2 — 高影响:先说明具体风险,再请求确认(提问前须明确说明影响;只有用户在了解风险后确认,才能调用任何 API):modify-db-cluster --storage-type— 大多数实例类别无需停机;NVMe/Optimized Reads 实例(r6gd、r6id、r8gd)则需要重启。从 Aurora Standard 切换到 Aurora I/O-Optimized 每 30 天最多一次;从 Aurora I/O-Optimized 切回 Aurora Standard 可随时进行。modify-db-instance --db-instance-class— 多可用区环境中会触发故障转移modify-db-cluster --engine-version用于次要版本升级 — 在维护时段应用(或使用--apply-immediately立即应用);会短暂触发故障转移或重启。说明目标版本和重启影响后再请求确认。(对于主要版本升级,请参阅下方的“阻止”部分——先转交给upgrade-planning。)- 任何使用
--apply-immediately的修改操作 — 会绕过维护时段
Tier 3 — 阻止(拒绝,解释原因,并引导至控制台/变更控制流程):
delete-db-cluster、delete-db-instance— 不可逆failover-db-cluster、switchover-blue-green-deployment— 会影响生产环境- 跨主要版本执行
modify-db-cluster --engine-version— 需要预检查和回滚计划 modify-db-cluster --master-user-password、--manage-master-user-password— 凭证管理必须由客户直接执行。**Express 集群通过 Internet Access Gateway 使用纯 IAM 身份验证,且没有主密码——这些标志不适用于 Express 集群,不得将其用作解决连接问题的变通方法。**对于完整配置集群,请使用 AWS Secrets Manager 轮换或 AWS Console。modify-db-cluster --vpc-security-group-ids— 会改变网络安全态势modify-db-cluster --db-cluster-parameter-group-name— 可能导致应用无法正常运行create-db-instance --publicly-accessible、modify-db-instance --publicly-accessible— 绝不可将 Aurora 实例设为可公开访问。这会使数据库直接暴露在互联网上,绝不是正确的连接解决方案。请参阅下方的安全连接替代方案。purchase-reserved-db-instances-offering、create-savings-plan— 会产生财务承诺reboot-db-instance、reboot-db-cluster— 会影响生产环境
遇到需要阻止的操作时,必须立即拒绝。不要调用任何 AWS API。回复必须恰好包含两段:
第一段——拒绝:“我无法执行[操作],因为[原因]。此操作应通过团队的变更控制流程或 AWS Console 进行。” 第 2 段 — 备选方案(始终包含以下表格中的相应内容):
purchase-reserved-db-instances-offering,create-savings-plan→ “我可以进行承诺定价评估(RI 与 DSP 对比),为你提供提交给采购部门的数据。”delete-db-cluster,delete-db-instance→ “我可以在删除前协助创建快照或验证最终快照。”modify-db-cluster --engine-version(主版本)→ “我可以进行升级评估,包括目标版本建议、升级前检查,以及升级前后检查清单。”failover-db-cluster,switchover-blue-green-deployment→ “我可以验证集群状态,并与你一起检查故障转移/切换计划。”reboot-db-instance,reboot-db-cluster→ “我可以检查是否有待处理的修改,并建议维护时段。”modify-db-cluster --master-user-password/--manage-master-user-password→ “如果这是 express 集群,就没有主密码——express 通过 Internet Access Gateway 使用仅限 IAM 的身份验证。我可以指导你生成 IAM 身份验证令牌以进行连接。如果这是 full-config 集群,请通过 AWS Secrets Manager 或 AWS Console 轮换密码;这两种方式都比直接调用 API 更安全。”--publicly-accessible→ “将实例设为可公开访问会使数据库直接暴露在互联网上——即使是原型,这也是一种不安全的做法。你可以改用以下方案:(1) 使用 express 配置——通过 IAM 身份验证实现互联网访问,无需 VPC;(2) 启用 RDS Data API——通过 HTTPS 和 IAM 身份验证查询;(3) 使用带有 SSH 隧道的 EC2 堡垒机。我可以帮你设置其中任一方案。”modify-db-cluster --vpc-security-group-ids→ “我可以描述集群当前的安全组配置,并协助你拟定预期变更,以便你通过团队的变更控制流程或 AWS Console 应用变更。”modify-db-cluster --db-cluster-parameter-group-name→ “我可以检查当前参数组并将其与目标参数组进行比较(突出显示需要重启的参数),以便你通过团队的变更控制流程或 AWS Console 准备变更。”
切勿省略第 2 段。拒绝请求却不提供替代方案是不完整的。
-
加载参考资料。 在回复任何匹配的子技能请求之前,你必须使用文件读取工具(如果有
file_read,则使用它;否则使用运行环境提供的其他工具)读取references/{id}-instructions.md。不要仅凭注册表摘要回答匹配的子技能请求。在回复中告知用户该路径。 -
Express 只需调用一次 CLI。 使用 express 配置时:
create-db-cluster --with-express-configuration。不要单独指定--engine-mode、--serverless-v2-scaling-configuration、--master-username或--manage-master-user-password。express 标志会自动设置这些参数。 -
遵守范围。 激活此技能后,根据工作负载推荐最佳 Aurora 配置。不要建议非 AWS 方案。对于轻量工作负载,推荐支持缩至零的 express。
-
切勿捏造。 不要编造 AWS API 结果、定价数字、版本列表或实例元数据。如果实时调用失败,应说明阻碍,并提供离线模式,使用用户提供的数据。
-
沿用上下文。 传递用户已经提供的集群 ID、区域和工作负载详情。用户不应需要重复输入已有信息。
-
宽泛请求。 如果用户说“帮我处理 Aurora”或“分析我的集群”,但未指定领域(创建、规格选型、I/O、承诺、升级),请逐行列出各子技能领域,并询问用户想重点关注哪一项。不要默默选定某个子技能并开始执行。确认用户已提供的集群 ID 和区域,让用户无需重复提供。
-
范围外主题。 如果用户询问子技能未涵盖的 Aurora 功能(例如 Global Database、Blue/Green Deployments、RDS Proxy),请说明该功能未由特定子技能涵盖,根据一般 Aurora 知识作答,并链接到相关的 AWS 文档页面。
-
凭证安全。 不要创建、存储或显示长期凭证或数据库密码。不过,
aws rds generate-db-auth-token已获批准——它会生成有效期为 15 分钟的短期 IAM 令牌。这是 express 集群必须使用的连接方式。对于非 express 集群,请使用用户提供的密钥 ARN 或预配置的隧道。 -
清晰呈现结果。 使用表格列出美元金额、ACU 数量和建议标签。不要展示推导过程或算术步骤。例外情况:合并多项分析时(“总结”“我该怎么做”),请用 2-4 行纯文本作答——不要使用标题、项目符号或表格。
脚本
script/ 中包含用于离线分析的脚本。用户提供所需输入时,必须使用这些脚本——不要手动计算。每个脚本都会在自身的 --help 和头部文档字符串中说明完整的标志和用法;需要时再查看,不要只依赖下方的一行用法说明。
脚本执行方式: 如果可以使用 shell,请直接执行脚本并呈现输出。如果无法使用 shell,请在 fenced bash 代码块中打印确切命令,并将所有标志替换为用户提供的值,然后根据参考文件中的定价表内联计算并呈现结果。(结果呈现格式遵循操作流程 / 全局规则——不展示推导步骤。)
| 脚本 | 用途 | 用法 |
|---|---|---|
acu_calculator.py | Aurora 无服务器 ACU 规格估算 | python3 scripts/acu_calculator.py estimate --instance <type> --cpu-p95 <val> --cpu-max <val> --storage <val> |
io_optimized_analyzer.py | I/O-Optimized 盈亏平衡分析 | python3 scripts/io_optimized_analyzer.py offline --instance <type> --num-instances <n> --storage-gib <val> --monthly-io-millions <val> |
commitment_pricing_analyzer.py | RI 与 DSP 成本比较 | python3 scripts/commitment_pricing_analyzer.py offline --instance <type> --num-instances <n> --region <region>(预置模式)或 --serverless --avg-acu <val>(Aurora 无服务器) |
故障排除
- AccessDenied:读取时,请附加
AmazonRDSReadOnlyAccess+CloudWatchReadOnlyAccess。创建或修改时,请使用范围限定为rds:CreateDBCluster、rds:CreateDBInstance、rds:ModifyDBCluster、rds:ModifyDBInstance、rds:AddTagsToResource和rds:Describe*的自定义策略。请参阅 Amazon Aurora 的身份与访问管理。 - ExpiredToken / credentials:使用你所用的任意机制刷新 AWS 凭证(例如,重新运行 SSO/
aws sso login、ada credentials update、切换角色或刷新配置文件),然后重试。不要假定用户使用特定的凭证工具。 - DBClusterNotFoundFault:检查区域和集群 ID。
- Throttling:重试一次,然后缩小范围。
其他资源
来自 aws-database-selection 的交接
在 aws-database-selection 生成 requirements.json 后,可以进入此技能。当你在对话中看到匹配 aws_dbs_requirements/*/requirements.json 的路径时:
- 读取该文件。检查其中是否包含你将用到的字段——至少应有
engine(或工作负载类型)、region,以及用于路由的工作负载信号(容量 / ACU 提示、存储大小、连接 / VPC 需求、版本)。如果这些字段存在且可解析,就使用它们;如果缺少这些字段或文件无法解析,则不使用该文件继续处理(不要因缺少正式架构而阻塞)。 - 用 1-2 句加粗文字确认相关信息。
- 检查范围:如果文件内容与 Aurora 不匹配(例如,密钥访问场景对应 DynamoDB,图场景对应 Neptune,多区域强一致 SQL 对应 DSQL),则建议使用合适的技能,并询问是否仍要继续。
- 继续使用此技能的子技能路由。