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

如何修复Node.js Lambda中AWS Amplify GraphQL更新突变失败问题

修复AWS Amplify GraphQL更新突变代码的方案

以下是你的更新代码存在的问题及对应修复方式:

1. 修复JavaScript语法错误

你的variables对象中,id: ID行末尾缺少逗号,会导致JSON序列化失败。另外如果ID是字符串类型的具体值,需要用引号包裹;如果是传入的变量,要确保它是有效的字符串格式。

2. 添加乐观锁必需的_version字段

Amplify GraphQL API默认启用乐观并发控制,更新操作必须携带_version字段(该字段会在创建或查询Driver时返回),否则会返回ConditionalCheckFailedException错误。

修复后的完整代码

const query = /* GraphQL */ `
  mutation UPDATE_DRIVER($input: UpdateDriverInput!) {
    updateDriver(input: $input) {
      id
      name
      _version
      createdAt
      updatedAt
      _lastChangedAt
    }
  }
`;

// 替换为实际获取到的Driver的id和_version值
const targetDriverId = 'driver-123';
const targetDriverVersion = 1;

const variables = {
   input: {
     id: targetDriverId,
     name: 'New name',
     _version: targetDriverVersion
    }
  };
    
const options = {
  method: 'POST',
  headers: {
    'x-api-key': GRAPHQL_API_KEY
  },
  body: JSON.stringify({ query, variables })
};
    
const request = new Request(GRAPHQL_ENDPOINT, options);

const response = await fetch(request);
const body = await response.json();
console.log(body); // 打印响应信息,方便排查后续问题

额外排查建议

  • 确认GRAPHQL_ENDPOINT和GRAPHQL_API_KEY与创建操作使用的完全一致
  • 如果仍报错,查看body中的errors字段,里面会包含具体错误原因(比如权限不足、字段不匹配等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:00:56