使用AWS lambda实现推送通知

我指的是图 aws lamba

在这种情况下,NodeJS用作运行时间,AWS Lambda用作事件通知程序(更新来自其他lambda或DB)。

我的挑战是,“用户浏览器”也可以是移动客户端。 “API”应该起到一种服务的作用,允许客户(移动或networking)订阅,取消订阅或发布数据,没有别的。

  1. lambda可以作为具有“推送事件通知”function的API直接客户端吗?

  2. 有没有解决scheme,样本工作/源代码可以用作POC?

  3. 接下来的问题是,自从它变成有状态(需要内存来记住客户端连接的状态),我怎么能扩展这样的架构呢?

  4. 或者,它有可能是坚持客户端连接数据库(使用框架如websocket或socket.io)?

AWS有SNS服务发送通知,您可以从Lambda使用这些通知。

您也可以直接使用相关平台的通知系统(例如iOS),Node具有用于与Apple APNS服务进行通信的“apn”模块 – 使用起来很简单,可以在Lambda函数中实现。

简单来说:

  1. 您的iOS应用程序注册APNS,并使用APNS设备令牌进行响应。 您的应用程序应该将其发送到您的API /服务器进行存储。

  2. 然后,您的API可以将通知发送到APNS,引用任何设备令牌以及您从Apple Developer页面创build的私钥文件。

  3. APNS将通知注册的设备。

这是一个很好的教程。

你的其他疑问应该是单独的问题。

lambda可以作为具有“推送事件通知”function的API直接客户端吗?

是! 正如@AndyOS所提到的,SNS是一个非常棒的服务,完全是为了发送通知。 我不会在这里详述,以避免重复的答复。

有没有解决scheme,样本工作/源代码可以用作POC?

或者,它有可能是坚持客户端连接数据库(使用框架如websocket或socket.io)?

如果你正在寻找使用websockets,我鼓励你看看物联网( https://aws.amazon.com/iot )。 物联网支持MQTT协议( http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html )。 此页面还包含示例客户端代码,可能会帮助您引导您的解决scheme。

接下来的问题是,自从它变成有状态(需要内存来记住客户端连接的状态),我怎么能扩展这样的架构呢?

您可以在http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot查看物联网的服务限制。 您需要决定您的应用程序是否适合这些范围,具体取决于您的应用程序所具有的各种指标(每秒请求数,并发连接数等)。