Спасибо за информацию.
Во-первых, вам вообще не нужен распознаватель в поле подписки. Единственная причина, по которой вам нужно добавить распознаватель в поле подписки, - это выполнять проверки авторизации на основе идентификатора вызывающего абонента во время соединения. Вам не нужно добавлять распознаватель, чтобы подписки работали. Чтобы исправить это, удалите распознаватель из поля подписки (Subscription.newPost
).
Чтобы решить ваш вариант использования и сделать так, чтобы вы подписывались только на посты с определенным идентификатором, измените поле подписки newPost
на newPost(id: ID!)
. Когда вы делаете запрос на подписку, укажите id
, и эта подписка будет получать только те сообщения, которые были возвращены подписанными на мутацию с этим идентификатором. Это функция, встроенная в AppSync, и проверка равенства аргументов происходит автоматически при добавлении аргументов в поле подписки.
Во-вторых, когда вы вставили его в комментарий, в настоящее время у вас есть этот шаблон сопоставления запросов для Mutation.addPost
:
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key" : {
$util.dynamodb.toDynamoDBJson($ctx.args.id)
"id": $util.dynamodb.toDynamoDBJson($util.autoId()),
},
"attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args)
}
Существует опечатка, и она должна быть такой:
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key" : {
"id": $util.dynamodb.toDynamoDBJson($util.autoId()),
},
"attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args)
}