【问题标题】:Messenger via AWS通过 AWS 的信使
【发布时间】:2018-04-04 10:22:28
【问题描述】:

我有一个网站和 iOS 应用程序,它使用 Amazon Cognito 进行登录和安全目的。现在我需要一个只有经过身份验证的 Cognito 用户才能与之通信的信使。我只需要一对一的对话(没有群聊等),我需要保存每个对话的历史记录。我考虑过使用 SNS 或 SQS,但我真的不确定这是否是个好主意……

有人对如何做到这一点有任何建议吗?

【问题讨论】:

    标签: javascript amazon-web-services amazon-dynamodb amazon-cognito


    【解决方案1】:

    您可以使用 Amazon APIGateway、Amazon Lambda、Amazon DynamoDB、Amazon SNS 和 IOT Websockets 来实现聊天应用程序。

    • 使用 APIGateway 和 Lambda 实现接收消息并将聊天消息存储在 DynamoDB 中。
    • 还从 Lambda 将消息发布到浏览器客户端侦听的 IOT websocket。
    • 将消息发布到移动客户端触发 SNS 主题以从 Lambda 推送通知。

    更多详情请参阅博客文章Receiving AWS IoT messages in your browser using websockets

    【讨论】:

    • 谢谢。 DynamoDb 听起来像是存储消息的好主意。但我不知何故需要保护特定条目,所以只有两个正在通信的 Cognito 用户可以访问它......为了允许访问单个身份,我只需使用如下条件:“ForAllValues:StringEquals”:{“ dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"] 但是我怎样才能访问一个额外的身份呢?
    • 您不能在策略级别提供两个身份。相反,请在 API Gateway Custom Authorizer(Preferred) 或集成 Lambda 处进行授权。
    • API Gateway Authorizer 似乎不错...有没有办法用 EC2 做到这一点?目前我正在使用 EC2 Nodejs 做所有事情,还是必须有 Lambda?
    • 没有。您需要为自定义授权者编写一个 Lambda。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2020-03-16
    • 2019-05-21
    • 1970-01-01
    相关资源
    最近更新 更多