从 lambda 函数触发 Appsync 突变
Posted
技术标签:
【中文标题】从 lambda 函数触发 Appsync 突变【英文标题】:Trigger Appsync mutation from lambda function 【发布时间】:2020-08-24 00:43:52 【问题描述】:当我从 DynamoDB添加/修改/删除项时尝试通过 lambda 触发突变时,我不断收到此错误消息:
"message" : "无效请求,
query
不能为空。",
所以我想做的是,每当直接在 dynamodb 上进行修改时,订阅用户都会收到更改通知。
我已经使用无类型数据源创建了新的突变。我直接在查询控制台上测试了一下,效果很好。
我还创建了基于 Python 的 lambda 函数,它能够检索 dynamodb 流,并已使用 cloudwatch 对其进行了测试。
现在的问题是,当我尝试从 lambda 发出 HTTP 发布请求时,我得到:
错误:MalformedHttpRequestException
消息:无效请求,
query
不能为空。
突变名称:addTodo
我通过帖子发送的数据:
'operationName': 'addTodo',
'variables':'id': '400',
'name': 'some name',
'description': 'some description',
'query': 'mutation addTodo($id: ID,
$name: String,
$description: String)
addTodo(id: $id,
name: $name,
description: $description)
id name description'
【问题讨论】:
【参考方案1】:您的有效载荷中有query
内部variables
,但预计会像这样传递到外部:
'operationName': 'addTodo',
'variables':
'id': '400',
'name': 'some name',
'description': 'some description'
,
'query': 'mutation addTodo(...'
【讨论】:
以上是关于从 lambda 函数触发 Appsync 突变的主要内容,如果未能解决你的问题,请参考以下文章
我可以触发 Lambda 函数或 SNS 事件来响应 AppSync GraphQL 突变吗?
当 AWS AppSync 使用 Cognito 时如何验证 Lambda 生成的突变
通过 AppSync 上的自定义 Lambda 授权方对突变进行身份验证