使用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 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen