【问题标题】:AWS Lambda error GraphQlError: Adapter is not a function when attempting to run mutations to AppSync endpointAWS Lambda 错误 GraphQlError:尝试对 AppSync 端点运行突变时,适配器不是函数
【发布时间】:2020-11-07 17:17:20
【问题描述】:

我正在我的 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)
  ]
}

当我在我的测试帐户中运行时,lambda 身份验证代码有效,并且我已验证测试帐户和此帐户之间的权限相同。我还验证了 account id 和 api Id 是正确的并且架构匹配。

由于我在测试和生产中使用相同的库,所以我对这个错误的含义有点迷茫。帐户中是否还有其他可能导致此错误的不匹配项?

【问题讨论】:

    标签: amazon-web-services graphql aws-appsync


    【解决方案1】:

    网上挖掘后发现: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",
    

    【讨论】:

      猜你喜欢
      • 2023-02-06
      • 2019-07-27
      • 1970-01-01
      • 2020-08-24
      • 2020-11-23
      • 2016-01-11
      • 2021-07-30
      • 2021-05-02
      • 1970-01-01
      相关资源
      最近更新 更多