如何为 AWS Amplify 中的 GraphQL 查询授予单独的权限

How to give separate permissions to GraphQL queries in AWS Amplify

我需要为单独的 GraphQL 查询授予单独的权限。例如,目前我已经定义了两个查询@auth 将这两个查询的权限授予 Admin 组。我如何才能将任何登录用户(Cognito 池)的访问权限授予 invokeLambda 查询,而仅允许管理员组访问 invokeGetGroups 查询?我似乎无法弄清楚它是如何完成的。

type Query {
  @auth(
      rules: [
        { allow: groups, groups: ["Admins"] }])
  invokeLambda: String @function(name: "pythonLambda-${env}") 
  invokeGetGroups: String @function(name: "getPatchGroups-${env}")
}

您可以在每个函数中使用 @auth 规则:

type Query {
  invokeLambda: String
    @function(name: "pythonLambda-${env}")
    @auth(rules: [{allow: private, provider: userPools}])
  invokeGetGroups: String
    @function(name: "getPatchGroups-${env}")
    @auth(rules: [{allow: groups, groups: ["Admins"]}])

}

我没有尝试使用不同的身份验证规则,但是当我遵循 an AWS tutorial.

时,我确实在每个函数上尝试了相同的身份验证规则