我要在这里做的是,当特定用户是新添加的DynamoDB项的一部分时,通过SNS和APNS发送通知。我想将其发送给用户Cognito身份ID,而不是设备令牌。
因此,在添加项目时应触发Lambda,然后浏览也是该项目一部分的Cognito身份ID列表。
然后,Lambda应该将推送通知发布到每个Cognito身份ID。
所有设备都在sns中注册为端点。我还将Cognito身份ID保留在端点的“用户数据”行中。
但是我没有找到将通知直接发送到Cognito身份ID的方法。我是否必须为每个用户添加一个主题并将通知发送给该主题?还是我必须存储另一个DynamoDB表以将Cognito身份ID映射到设备令牌?如果有人知道一种更简单且不太昂贵的方法,那就太好了!
谢谢!
最佳答案
如果要通过SNS将推送通知发送到APNS或GCM,则首先需要为每个为推送通知注册的设备令牌创建一个SNS平台端点。拥有SNS端点后,您需要在用户表或另一个映射表中使用Cognito身份ID映射该端点。
将新项目添加到DynamoDB时,事件处理程序(Lambda)将需要将传入的Cognito身份ID映射到用户表中的SNS平台端点,然后可以将其直接发布到该端点。
您无需创建SNS主题即可将Push发送到各个端点。