送SNS通知的所有用户订阅了主题从Lambda

0

的问题

我已经创建了一个电子商务IOS应用与后端在node.js (Lambda). 当用户signedIn/用,应用程序赞同一 SNS主题 ,我已经创建了通知发送和存储 推令牌和设备ARN 在数据库。 我现在想要发送通知的所有用户订阅了这SNS主题,当我们增加一个新的项目。 目前,发送通知我取的所有用户从数据库和环,通过用户获得他们推动标记和向用户发送通知的一个接一个,这是很昂贵的过程,并API花了太多时间。

现在我要做的是打SNS主题从Lambda,并通过体的通知,主题和SNS主题将通知发送给所有用户订阅了主题. 我已经搜查,但无法找到任何解决方案。

代码,我已经做了发送通知

await Promise.all(targetArns.map(async (item, index) => {
         const publishNotificationParams = { 
            "TargetArn": item,
            "Message": JSON.stringify({
              "default": JSON.stringify({
                  "category" : title,
                  "alert" : {
                    "title" : title,
                    "body" : 'New product is launced',
                    "data" : product
                  },
                  "badge" : 1,
                  "sound" : "chime.aiff"
                }),
                "APNS_SANDBOX": JSON.stringify(params),
                "APNS": JSON.stringify(params)
            }),
            "MessageStructure": "json"
        };
        var publishTextPromise = sns.publish(publishNotificationParams).promise();
       publishTextPromise.then(
        function(data) {
          console.log(`Message ${publishNotificationParams.Message} sent to the topic ${publishNotificationParams.TargetArn}`);
        }).catch(
          function(err) {
          console.error(err, err.stack);
        });
     }));

但为了这个,我需要获取的每一个用户从数据库得到他们的终点ARN然后发送通知的迭代。

我想要呼叫SNS主题传递的主体的通知和SNS将发送的通知到每个用户订阅了这SNS主题。

我这样做是因为我想保存的成本获取的每一个用户从数据库,然后发送通知

1

最好的答案

0

这是你如何能实现,流动。 我想你已经有一些零部件的这一实施。

  1. 创建一个主题,这将是用来扇出通知到所有的用户: https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html

  2. 创建平台应用程序(s)为不同的平台应用用于: https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html

  3. 当一个用户登录了用于应用,创建一个平台的终点应用程序相对应的用户的平台: https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html

    3.1. 如果你想要能够到这个目标用户是直接的,也存储这ARN的地方直接发布(如你现在正在做的).

  4. 现在也建立一个订阅的议题创造了步骤1的端点ARN: https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html

  5. 发布主题期间创建的步骤1: https://docs.aws.amazon.com/sns/latest/api/API_Publish.html

SNS将自动风扇出的信息的所有用户(所有用户使用),使他们每个人将收到一份通知没有你迭代,每个用户。

2021-11-24 23:11:24

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................