使用Amplify的GraphQL无法通过Appsync GSI 已存在的DynamoDB记录。

0

【以下的问题经过翻译处理】 我使用Amplify自动生成AppSync模式和GraphQL解析器。突然间,一个重要的查询停止工作了。这是我在AppSync控制台运行的查询:

query CreamByUuid {
  creamByUUID(streamUUID: "6e1a5555-9999-6666-84c1-54e777777777", id: {}) {
    items {
      id
    }
    nextToken
  }
  milkBySlug(slug: "cherry-rare-solo-appearance") {
    nextToken
    items {
      price
      id
    }
  }
  getCream(id: "77bababa-8888-3333-bb2b-857c470d5555") {
    id
    creamUUID
  }
}


第一部分是通过名为“creamUUID”的字段检索流的GSI。问题是,结果返回一个空数组:

{
  "data": {
    "creamByUUID": {
      "items": [],
      "nextToken": null
    },
    "milkBySlug": {
      "nextToken": null,
      "items": [
        {
          "price": 7,
          "id": "17e50e71-ay7d-8382-1098-25c616444444"
        }
      ]
    },
    "getCream": {
      "id": "77bababa-8888-3333-bb2b-857c470d5555",
      "creamUUID": "6e1a5555-9999-6666-84c1-54e777777777"
    },
  }
}

我测试了另一个GSI,milkBySlug,以确保它不是更广泛的GSI问题。但正如你所看到的,我确实能正确地获取一个条目。

更让人不安的是,当我通过ID检索Cream时,我实际上会得到Cream记录("getCream"返回具有creamUUID为“6e1a5555-9999-6666-84c1-54e777777777”的记录)

因此,Cream记录存在于DynamoDB中,使用ID的直接查询可以

1 回答
0

【以下的回答经过翻译处理】 如果有人遇到这个问题,那是因为我最近创建的新schema上复制了GSIs。我删除了新schema上的GSIs,现在一切都正常了!但问题是,Amplify不应该让我添加具有重复GSIs的新Schema。 这绝对是一个应该被@aws观察的漏洞。

profile picture
专家
已回答 9 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则