在 运行 突变时接收 "Unsupported element '$[operation]'."

Receiving "Unsupported element '$[operation]'." when running a mutation

我有一个问题 运行 由 Amplify CLI 生成的突变。
我在节点 v14.18.1 上,放大 CLI 7.6.2。

我最近刚迁移到 GraphQL T运行sformer v2。

这是我的模型:

type User
  @model
  @auth(
    rules: [
      { allow: groups, groups: ["admin"] }
      { allow: owner, ownerField: "id", operations: [read] }
    ]
  ) {
  id: ID! 
  first_name: String
  last_name: String
  email: String!
  customer: Customer @hasOne(fields: ["userCustomerId"])
  userCustomerId: ID! @index(name: "usersByCreatedAt", queryField: "usersByCreatedAt" sortKeyFields: ["createdAt"])
  createdAt: String!
  isAdmin: Boolean
}

我从 AppSync 中调用的突变:

mutation UpdateUser {
  updateUser(input: {id: "asdfasdfasdf", isAdmin: true, last_name: "Franklin", first_name: "Tim", email: "tim@tim.com", userCustomerId: "my_customer"}) {
    id
  }
}

错误:

{
  "data": {
    "updateUser": null
  },
  "errors": [
    {
      "path": [
        "updateUser"
      ],
      "data": null,
      "errorType": "MappingTemplate",
      "errorInfo": null,
      "locations": [
        {
          "line": 2,
          "column": 3,
          "sourceName": null
        }
      ],
      "message": "Unsupported element '$[operation]'."
    }
  ]
}

有没有人 运行 遇到过这个错误,你是如何解决的? 谢谢!

检查project_dir/amplify/backend/api/api_name/resolvers中是否有.vtl个文件。如果有并且您不确定 why/don 不认识它们,请备份并删除这些文件,使用 amplify push 部署您的本地后端,然后查看突变是否成功。

我在删除突变期间遇到了完全相同的错误,这为我解决了。 Amplify CLI 自动为 API 服务生成模板,但会用它在该目录中找到的任何内容覆盖它们。请确保在删除所有这些文件之前备份它们以防万一..