繁体   English   中英

如何使用 Lambda function 作为 AWS AppSync 订阅解析器

How can I use a Lambda function as an AWS AppSync subscription resolver

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在开发一个 AWS AppSync 驱动的应用程序。 我有以下发电机 object...

type Message
    @model
    @key(name: "bySender", fields: ["senderId"])
    @key(name: "byDate", fields: ["channelId", "createdAt"], queryField: "getMessagesByDate")
    @auth(
        rules: [
            { allow: groups, groups: ["user"], operations: [read, create, update] }
        ]
    ) {
    id: ID!
    channelId: ID!
    senderId: ID!
    channel: Channel @connection(fields: ["channelId"])
    sender: User @connection(fields: ["senderId"])
    createdAt: AWSDateTime!
    text: String
    fileKey: String
    hasBeenReadByIds: [ID!]
}

我创建具有以下突变的消息...

createNewMessage(id: ID!, channelId: ID!, senderId: ID!, text: String, fileKey: String): Message

我有一个订阅,用于侦听使用 createNewMessage 创建的消息...

onCreateMessageForMe: Message @aws_subscribe(mutations: ["createNewMessage"])

订阅使用 javascript lambda 作为解析器。 但是当 lambda 被调用时, event.arguments 是 {}。

exports.handler = async (event) => {
    console.log("EVENT  ---- ", event);
}    

EVENT  ----  {
  arguments: {},
  identity: {
    claims: {...

如何从事件中获取新创建的消息的属性(id、senderId、channelId、文本...)?

问题暂未有回复.您可以查看右边的相关问题.
2 我可以有条件地调用 AWS Appsync 解析器中的 lambda 函数吗?

我已将 Appsync 管道解析器附加到我的Organisation对象中名为paymentStatus的字段。 这个想法是,如果组织的最后一个发薪日已经过去,我想使用 Lambda 函数从外部 API 获取付款状态。 如果发薪日还没有过去,我不想调用该函数而只是返回一个“OK”。 有什么方法可以 ...

5 AWS AppSync Lambda 解析器字段

我有以下查询: 我有什么办法可以在 lambda 中获取field1和field2吗? 例如,只查询 mysql 中的那些字段,而不是获取所有这些字段,以便稍后被 AppSync 丢弃。 我尝试在请求映射器 VTL 文件中记录所有$context ,但它们不在那里。 有任何想法吗? 无法做到这 ...

6 如何在由 lambda 调用的 Appsync 中添加订阅?

我知道 Appsync 中的订阅与变异一起工作,这意味着每当调用变异时,也会调用订阅,将消息发送给所有订阅者。 我想要的是,如果有任何方法,我基本上可以使用 Appsync 或任何其他方式直接从 lambda 实时向用户发送消息? 也就是说,我不希望用户刷新页面。 用例可以是,比如说,我有一个独 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM