You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AppSync GraphQL Schema(基于DynamoDB)中配置全局二级索引

在AppSync GraphQL Schema中添加DynamoDB全局二级索引(GSI)

1. 如何添加指定的GSI

你可以通过@index指令在模型定义中直接声明目标GSI,指定分区键为featuredPost、排序键为title。结合你现有的主键(id)和排序键(sk)配置,完整的模型示例如下:

type Post 
  @model(keys: [
    { name: "primaryKey", fields: ["id"] },
    { name: "id-sk", fields: ["id", "sk"] }
  ])
  @index(
    name: "FeaturedPostByTitle" # 自定义GSI名称,便于后续识别
    fields: ["featuredPost"],    # GSI的分区键(主键)
    sortKeyFields: ["title"]     # GSI的排序键
  ) {
  id: ID!
  sk: String!
  featuredPost: String! # 建议字段设为非空,避免数据无法被索引到GSI中
  title: String!
  # 其他业务字段...
}
  • @model的keys参数保留了你原有的主键(id)和复合排序键(id+sk)配置;
  • @index是AppSync专门用于定义GSI的指令:fields指定GSI的分区键,sortKeyFields指定排序键,name可自定义(推荐设置,避免自动生成的名称难以识别)。

2. 是否需要在Schema中引用GSI

不需要手动额外引用。当你通过@index定义GSI后,AppSync会自动在Schema的Query类型中生成对应的查询操作(比如根据featuredPost和title查询的listPostsByFeaturedPostByTitle,名称由GSI名称推导而来),你可以直接使用这些自动生成的查询来访问GSI中的数据。

内容的提问来源于stack exchange,提问作者DevOverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:12:12