AWS SNS 通过 Cognito 身份 ID 发布给特定用户
AWS SNS Publish to specific User via Cognito Identity ID
我在这里尝试做的是当特定用户是新添加的 DynamoDB 项目的一部分时通过 SNS 和 APNS 发送通知。我想将其发送给用户 Cognito Identity ID,而不是设备令牌。
所以 Lambda 应该在添加项目时触发,然后通过 Cognito Identity ID 列表,这也是项目的一部分。
然后 Lambda 应该将推送通知发布到每个 Cognito 身份 ID。
所有设备都在 sns 中注册为端点。我还将 Cognito Identity ID 保留在端点的 "user data" 行中。
但我没有找到将通知直接发送到 Cognito Identity ID 的方法。我是否必须为每个用户添加一个主题并将通知发送到该主题?或者我是否必须存储另一个 DynamoDB table 以将 Cognito 身份 ID 映射到设备令牌?如果有人知道更简单且不太昂贵的方法,那就太好了!
谢谢!
如果您要通过 SNS 向 APNS 或 GCM 发送推送通知,那么您首先需要为每个为推送通知注册的设备令牌创建一个 SNS 平台端点。拥有 SNS 端点后,您需要将该端点与用户 table 或其他映射 table 中的 Cognito 身份 ID 进行映射。
将新项目添加到 DynamoDB 时,事件处理程序 (Lambda) 需要将传入的 Cognito 身份 ID 映射到用户 table 中的 SNS 平台端点,然后它可以直接发布到那个一个端点。
您不需要创建 SNS 主题来向各个端点发送推送。
我在这里尝试做的是当特定用户是新添加的 DynamoDB 项目的一部分时通过 SNS 和 APNS 发送通知。我想将其发送给用户 Cognito Identity ID,而不是设备令牌。
所以 Lambda 应该在添加项目时触发,然后通过 Cognito Identity ID 列表,这也是项目的一部分。
然后 Lambda 应该将推送通知发布到每个 Cognito 身份 ID。
所有设备都在 sns 中注册为端点。我还将 Cognito Identity ID 保留在端点的 "user data" 行中。
但我没有找到将通知直接发送到 Cognito Identity ID 的方法。我是否必须为每个用户添加一个主题并将通知发送到该主题?或者我是否必须存储另一个 DynamoDB table 以将 Cognito 身份 ID 映射到设备令牌?如果有人知道更简单且不太昂贵的方法,那就太好了!
谢谢!
如果您要通过 SNS 向 APNS 或 GCM 发送推送通知,那么您首先需要为每个为推送通知注册的设备令牌创建一个 SNS 平台端点。拥有 SNS 端点后,您需要将该端点与用户 table 或其他映射 table 中的 Cognito 身份 ID 进行映射。
将新项目添加到 DynamoDB 时,事件处理程序 (Lambda) 需要将传入的 Cognito 身份 ID 映射到用户 table 中的 SNS 平台端点,然后它可以直接发布到那个一个端点。
您不需要创建 SNS 主题来向各个端点发送推送。