mcpField
A
amazon-aurora-postgresql

amazon-aurora-postgresql

github.com/aws数据与数据库3.3k5.7k 次安装1 天前更新
代码仓库

关于 amazon-aurora-postgresql

面向 Aurora PostgreSQL 的模块化技能,将请求分派到集群创建、无服务器指导、存储选择、承诺定价和升级等子技能。它还规定操作执行流程及变更确认规则。

主要功能

  1. 01将请求路由至专用子技能
  2. 02指导集群创建路径
  3. 03提供无服务器容量建议
  4. 04比较存储与承诺选项
  5. 05规划数据库版本升级

适用场景

  1. 01创建 Aurora PostgreSQL 集群
  2. 02评估无服务器容量需求
  3. 03比较存储或承诺方案
  4. 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.md
commitment-pricing-instructions.md
commitment-pricing-mechanics.md
commitment-pricing-scenarios.md
commitment-pricing-skipped-cluster.md
commitment-pricing-worked-examples.md
create-instructions.md
express-create-comparison.md
express-create-connect-iam.md
express-create-constraints.md
express-create-documentation-links.md
express-create-feature-overview.md
express-create-instructions.md
express-create-migration-pgdump.md
express-create-migration.md
express-create-use-cases.md
io-optimized-data-collection.md
io-optimized-instructions.md
io-optimized-pricing-tables.md
io-optimized-pricing.md
io-optimized-worked-examples.md
serverless-advisory-concepts.md
serverless-advisory-formulas-and-examples.md
serverless-advisory-instructions.md
serverless-advisory-migration.md
serverless-advisory-worked-examples.md
shared-foundation-security-considerations.md
upgrade-planning-documentation-links.md
upgrade-planning-instructions.md
upgrade-planning-lts-recommendation.md

详细介绍

Amazon Aurora PostgreSQL

一个模块化的 Aurora PostgreSQL 工具包,按子技能注册表组织。每个子技能负责 Aurora PostgreSQL 的一个工作领域。路由器会根据用户意图匹配合适的子技能,然后只加载所需的参考资料。(对于 Aurora MySQL,请使用 amazon-aurora-mysql 技能。)

操作流程(按顺序执行)

  1. 路由 — 根据 触发短语 列,将请求匹配到相应的子技能(根据含义匹配,而非逐字匹配),然后通过 适用场景 列确认。
  2. 加载 — 使用 file_read 读取匹配子技能的 references/{id}-instructions.md,并告知用户该路径。不要仅凭一般知识回答匹配到的子技能问题。
  3. 分析 / 建议 — 完成子技能的工作;用户提供输入时,运行随附脚本(参见“脚本”)。
  4. 如果用户请求变更 — 根据安全防护等级进行分类,向用户确认,应用资源标签,然后执行(优先使用 MCP,失败时改用 CLI)。
  5. 呈现结果 — 使用包含美元金额 / 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-advisoryAurora 无服务器咨询处理所有 Aurora 无服务器相关问题:ACU 规格、缩放至零的行为和兼容性、从预置集群迁移至无服务器集群、容量规划以及功能限制。ACU 规格、Aurora 无服务器、缩放至零、从预置迁移至无服务器、需要多少 ACU、容量、自动扩缩、RDS Proxy 兼容性、与缩放至零不兼容、无服务器限制create(可选)commitment-pricing
io-optimizedI/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 配置。不要让用户选择——自行决定,然后说明选择了哪条路径及原因。

需求 / 信号ExpressFull 配置
默认 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——加载这些文件以查看实际步骤。

全局规则(适用于每项子技能)

  1. 执行,而不只是建议。 用户请求操作并确认后,应直接执行,而不是只给出要运行的命令。AWS MCP 服务是在可用时推荐的执行路径(采用沙盒隔离、通过 IAM 认证并记录审计日志)——优先使用它。MCP 工具不可用时(例如 Claude Code、Cursor 或其他非 MCP 主机),直接使用 AWS CLI / SDK 执行相同的 aws rds ... 操作。只有在当前环境中确实无法执行时,才向用户提供完整的 CLI 命令供其运行。

  2. 变更前确认。 执行任何创建或修改操作前,必须先向用户确认。未经明确确认(“是”“继续”“已确认”“开始吧”),不得执行。

  3. 资源标记(创建资源时始终应用)。 创建任何集群或实例时,始终包含以下标记: --tags Key=created_by,Value=aurora-skill Key=generation_model,Value={your-model-id} 如果知道你的模型 ID,则使用该 ID;如果无法可靠地确定,则使用 Value=unknown——绝不要因标记而阻止创建。即使用户没有提及标记,也要包含这些标记。如果用户提供了其他标记,将这些标记追加到用户的标记中。

  4. 安全防护措施。

    第 1 级 — 确认(只需是 / 否确认,无需风险说明):

    • create-db-cluster、create-db-cluster --with-express-configuration
    • create-db-instance
    • modify-db-cluster --serverless-v2-scaling-configuration(ACU 扩缩)
    • modify-db-cluster --backup-retention-period
    • modify-db-cluster --deletion-protection / --no-deletion-protection
    • modify-db-cluster --enable-cloudwatch-logs-exports
    • modify-db-cluster --preferred-backup-window
    • modify-db-cluster --enable-http-endpoint(Data API)
    • add-tags-to-resource、remove-tags-from-resource Tier 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 段。拒绝请求却不提供替代方案是不完整的。

  5. 加载参考资料。 在回复任何匹配的子技能请求之前,你必须使用文件读取工具(如果有 file_read,则使用它;否则使用运行环境提供的其他工具)读取 references/{id}-instructions.md。不要仅凭注册表摘要回答匹配的子技能请求。在回复中告知用户该路径。

  6. Express 只需调用一次 CLI。 使用 express 配置时:create-db-cluster --with-express-configuration。不要单独指定 --engine-mode、--serverless-v2-scaling-configuration、--master-username 或 --manage-master-user-password。express 标志会自动设置这些参数。

  7. 遵守范围。 激活此技能后,根据工作负载推荐最佳 Aurora 配置。不要建议非 AWS 方案。对于轻量工作负载,推荐支持缩至零的 express。

  8. 切勿捏造。 不要编造 AWS API 结果、定价数字、版本列表或实例元数据。如果实时调用失败,应说明阻碍,并提供离线模式,使用用户提供的数据。

  9. 沿用上下文。 传递用户已经提供的集群 ID、区域和工作负载详情。用户不应需要重复输入已有信息。

  10. 宽泛请求。 如果用户说“帮我处理 Aurora”或“分析我的集群”,但未指定领域(创建、规格选型、I/O、承诺、升级),请逐行列出各子技能领域,并询问用户想重点关注哪一项。不要默默选定某个子技能并开始执行。确认用户已提供的集群 ID 和区域,让用户无需重复提供。

  11. 范围外主题。 如果用户询问子技能未涵盖的 Aurora 功能(例如 Global Database、Blue/Green Deployments、RDS Proxy),请说明该功能未由特定子技能涵盖,根据一般 Aurora 知识作答,并链接到相关的 AWS 文档页面。

  12. 凭证安全。 不要创建、存储或显示长期凭证或数据库密码。不过,aws rds generate-db-auth-token 已获批准——它会生成有效期为 15 分钟的短期 IAM 令牌。这是 express 集群必须使用的连接方式。对于非 express 集群,请使用用户提供的密钥 ARN 或预配置的隧道。

  13. 清晰呈现结果。 使用表格列出美元金额、ACU 数量和建议标签。不要展示推导过程或算术步骤。例外情况:合并多项分析时(“总结”“我该怎么做”),请用 2-4 行纯文本作答——不要使用标题、项目符号或表格。

脚本

script/ 中包含用于离线分析的脚本。用户提供所需输入时,必须使用这些脚本——不要手动计算。每个脚本都会在自身的 --help 和头部文档字符串中说明完整的标志和用法;需要时再查看,不要只依赖下方的一行用法说明。

脚本执行方式: 如果可以使用 shell,请直接执行脚本并呈现输出。如果无法使用 shell,请在 fenced bash 代码块中打印确切命令,并将所有标志替换为用户提供的值,然后根据参考文件中的定价表内联计算并呈现结果。(结果呈现格式遵循操作流程 / 全局规则——不展示推导步骤。)

脚本用途用法
acu_calculator.pyAurora 无服务器 ACU 规格估算python3 scripts/acu_calculator.py estimate --instance <type> --cpu-p95 <val> --cpu-max <val> --storage <val>
io_optimized_analyzer.pyI/O-Optimized 盈亏平衡分析python3 scripts/io_optimized_analyzer.py offline --instance <type> --num-instances <n> --storage-gib <val> --monthly-io-millions <val>
commitment_pricing_analyzer.pyRI 与 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 的路径时:

  1. 读取该文件。检查其中是否包含你将用到的字段——至少应有 engine(或工作负载类型)、region,以及用于路由的工作负载信号(容量 / ACU 提示、存储大小、连接 / VPC 需求、版本)。如果这些字段存在且可解析,就使用它们;如果缺少这些字段或文件无法解析,则不使用该文件继续处理(不要因缺少正式架构而阻塞)。
  2. 用 1-2 句加粗文字确认相关信息。
  3. 检查范围:如果文件内容与 Aurora 不匹配(例如,密钥访问场景对应 DynamoDB,图场景对应 Neptune,多区域强一致 SQL 对应 DSQL),则建议使用合适的技能,并询问是否仍要继续。
  4. 继续使用此技能的子技能路由。

评论

支持 Markdown