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

定义带数组类型的GraphQL Schema后Amplify Push触发内部错误求解决

解决Amplify GraphQL数组类型参数触发内部错误的问题

问题场景

在Amplify的schema.graphql中定义包含自定义对象数组参数的GraphQL字段(如data: [Anforderungeccdata])时,执行amplify push操作触发内部错误。

解决方案

  • 调整自定义类型定义顺序
    Amplify的Schema解析对类型定义顺序敏感,需确保自定义对象类型Anforderungeccdata定义在引用它的字段之前。调整后的Schema示例:

    type Anforderungeccdata {
      grouprequestId: String
      dateFrom: String
      dateTo: String
      ecShare: String
      energyDirection: String
      meteringPoint: String
    }
    
    type Mutation {
      anforderungecc(
        sender: String
        data: [Anforderungeccdata]
        test: Boolean
        ecid: String
        receiver: String
      ): String
        @function(name: "anforderungecc-${env}")
        @auth(rules: [{ allow: private }])
    }
    
  • 清理Amplify缓存文件
    执行以下命令清理生成的临时文件,避免旧缓存导致的解析冲突:

    amplify clean
    amplify push
    
  • 升级Amplify CLI版本
    旧版本CLI可能存在数组类型解析的bug,升级到最新稳定版:

    npm install -g @aws-amplify/cli
    
  • 验证Lambda函数输入处理逻辑
    由于字段使用了@function指令,对应的Lambda函数需正确处理数组类型输入。比如在Node.js函数中,确保能正确解析event.arguments.data数组,处理每个对象的字段。

  • 显式声明数组约束(可选)
    如果业务允许,可显式指定数组或元素的非空约束,帮助Amplify生成正确的Resolver:

    • 非空数组:data: [Anforderungeccdata!]!
    • 允许空数组但元素非空:data: [Anforderungeccdata!]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:10:27