Устранение неполадок при выполнении пакета Получить в AWS Appsync с помощью Dynamo Db - PullRequest
0 голосов
/ 28 мая 2018

У меня проблемы с выполнением пакетной синхронизации приложений.Это мои следующие средства распознавания.

Шаблон сопоставления запросов.

#set($ids = [])
#foreach($id in ${ctx.args.topicIds})
   #set($map = {})
   $util.qr($map.put("topicId", $util.dynamodb.toString($id)))
   $util.qr($ids.add($map))
#end

{
 "version" : "2018-05-29",
 "operation" : "BatchGetItem",
 "tables" : {
    "Topic": {
        "keys": $util.toJson($ids),
        "consistentRead": true
    }
 }
}

Шаблон сопоставления ответов

$util.toJson($ctx.result.data.Topic)

Thisкак я задаю запрос

 query listStudentBookmarkedTopics {
   listStudentBookmarkedTopics(
     topicIds: [ "503", "501" ]
   ) {
     topicId
   }
 }

Но я получаю нулевые результаты

 {
  "data": {
    "listStudentBookmarkedTopics": [
      null,
      null
    ] 
  }
}

Вот так выглядит моя таблица

enter image description here

Это журналы наблюдения за облаками

enter image description here

Ответы [ 2 ]

0 голосов
/ 13 августа 2018

У меня была похожая проблема.Исправлено путем применения соответствующих разрешений.Если вы создали новую роль IAM, по умолчанию она не предоставляет разрешения batch*.Из документов AWS:

Как и в других средствах распознавания, вам нужно создать источник данных в AWS AppSync и либо создать роль, либо использовать существующую.Поскольку для пакетных операций требуются разные разрешения для таблиц DynamoDB, вам необходимо предоставить настроенные роли для действий чтения или записи:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "dynamodb:BatchGetItem",
        "dynamodb:BatchWriteItem"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:dynamodb:region:account:table/TABLENAME",
        "arn:aws:dynamodb:region:account:table/TABLENAME/*"
      ]
    }
  ]
}

Вы можете присоединить новую политику или просто добавить "dynamodb:BatchGetItem" всуществующий в IAM приборной панели.`

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

как выглядит ваша таблица DynamoDB?Topic имя таблицы?Какой основной ключ раздела определен на нем?Мне нужны дополнительные сведения, чтобы помочь вам в этом.

В качестве альтернативы, пожалуйста, включите журналы CloudWatch для вашего API (вы должны сделать это через Консоль -> на странице настроек вашего API).Попробуйте еще раз выполнить запрос и посмотрите, какие разрешенные шаблоны запросов и ответов для этого пути.Это должно предоставить вам дополнительную информацию.

...