AWS Amplify AppSync IAM 401 - PullRequest
       45

AWS Amplify AppSync IAM 401

0 голосов
/ 17 мая 2018

Я получаю GraphQLError: Request failed with status code 401

Я следовал инструкциям автоматической настройки:

https://aws.github.io/aws-amplify/media/api_guide#automated-configuration-with-cli

Я пытался искать, но не хватает ресурсов для IAM. Похоже, что все должно быть настроено автоматически и выполнено с помощью Amplify CLI после того, как я ввел ключ доступа IAM и секрет.

Требуется ли дополнительная настройка? Вот мой код:

import Amplify, { API, graphqlOperation, Hub } from "aws-amplify";
import aws_config from "../../aws-exports";

Amplify.configure(aws_config);

const ListKeywords = `query ListKeywords {
  listKeyword {
    keyword {
      id
      name
    }
  }
}`;

const loop = async () => {
  const allKeywords = await API.graphql(graphqlOperation(ListKeywords));
}

Может ли это быть из-за того, что мои распознаватели GraphQL еще не настроены для ListKeywords?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я только что изменил ~/.aws/credentials и теперь он работает.

Похоже, даже если у вас есть конкретная конфигурация проекта с помощью инструментов командной строки Amplify или ~/.awsmobile/aws-config.js, она по-прежнему полагается на ~/.aws

0 голосов
/ 17 мая 2018

Если вы используете IAM в качестве типа авторизации в API-интерфейсе AppSync, проблема заключается в том, что роль Cognito используется с категорией Auth, когда при вызове Amplify.configure() не предоставляются разрешения для операций GraphQL.Для этого нужно что-то вроде этого:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "appsync:GraphQL"
         ],
         "Resource": [
            "arn:aws:appsync:us-west-2:123456789012:apis/YourGraphQLApiId/*"
         ]
      }
   ]
}

Подробнее здесь: https://docs.aws.amazon.com/appsync/latest/devguide/security.html

...