AWS Lambda error GraphQlError: Adapter is not a function when attempting to run mutations to AppSync endpoint

AWS Lambda error GraphQlError: Adapter is not a function when attempting to run mutations to AppSync endpoint

我在我的 AWS 账户中 运行 设置了一个 lambda,它试图 运行 对通过 AWS_IAM 验证的同一账户中的 AppSync 实例进行突变。我已经创建了一个角色,我的 lambda 假定它可以使用以下文档访问我的突变:

{
    "Action": [
        "appsync:GraphQL",
        "sts:AssumeRole"
    ],
    "Resource": "arn:aws:appsync:us-west-2:<MyAWSAccountId>:apis/<MyAppSyncAPiId>/types/Mutation/fields/*",
    "Effect": "Allow"
},

但是,我收到以下错误:

错误

{
  data: {},
  errors: [
    GraphQLError: adapter is not a function
        at APIClass.<anonymous> (/var/task/node_modules/@aws-amplify/api/dist/aws-amplify-api.js:4627:24)
        at step (/var/task/node_modules/@aws-amplify/api/dist/aws-amplify-api.js:3800:19)
        at Object.throw (/var/task/node_modules/@aws-amplify/api/dist/aws-amplify-api.js:3730:14)
        at rejected (/var/task/node_modules/@aws-amplify/api/dist/aws-     amplify-api.js:3692:32)
        at runNextTicks (internal/process/task_queues.js:62:5)
        at processImmediate (internal/timers.js:429:9)
        at process.topLevelDomainCallback (domain.js:137:15)
  ]
}

当我在我的测试帐户中 运行ning 时,lambda 授权代码有效,并且我已验证测试帐户和此帐户之间的权限相同。我还验证了帐户 ID 和 api ID 正确且模式匹配。

由于我在测试和生产中使用相同的库,所以我有点不知道这个错误意味着什么。是否有任何其他可能导致此错误的帐户不匹配?

经过网上挖掘发现:https://github.com/aws-amplify/amplify-js/issues/4311#issuecomment-562789876

使用 "@aws-amplify/api": "^2.2.0", 导致不匹配错误。我最终降级为: "@aws-amplify/api": "^2.1.0", 因为大于 2.2.0 的版本导致缺少身份池错误。

我的 package.json 中的最终依赖集:

"@aws-amplify/api": "^2.1.0",
"aws-amplify": "^2.1.0",
"aws-sdk": "^2.6.x",
"aws-appsync": "^2.0.2",
"amazon-cognito-identity-js": "^3.0.x",