AWSSNS过滤为何不忽略未知消息属性?
创始人
2024-09-27 11:30:41
0

在 AWS SNS 过滤中,未知消息属性不会被忽略,这意味着您需要为所有想要匹配的属性都创建一个过滤策略。要解决这个问题,您可以通过在过滤筛选器中添加适配器来忽略未知属性。以下是一个示例代码,用于在 Node.js 和 Typescript 中过滤 SNS 消息:

import * as AWS from 'aws-sdk';
import * as SNS from "aws-sdk/clients/sns";

AWS.config.update({ region: 'us-east-1' });
const sns: SNS = new AWS.SNS({ apiVersion: '2010-03-31' });

const subscriptions: any[] = [];

function subscribeToTopic(topicArn: string, filterPolicy: object) {
   const params = {
      Protocol: 'https',
      TopicArn: topicArn,
      Attributes: {
         'FilterPolicy': JSON.stringify(filterPolicy)
      }
   };

   sns.subscribe(params, function (err, data) {
      if (err) {
         console.error(err);
      } else {
         subscriptions.push(data.SubscriptionArn);
         console.log('Subscribed to SNS topic successfully. Subscription ARN: ' + data.SubscriptionArn);
      }
   });
}

function handleSNSMessage(event: any) {
   const snsMessage = event.Records[0].Sns;
   console.log('Received SNS message: ' + JSON.stringify(snsMessage.Message));

   // Check for known message attributes
   if (snsMessage.MessageAttributes['attribute1']) {
      // Process the message
   }
   if (snsMessage.MessageAttributes['attribute2']) {
      // Process the message
   }
}

// Subscribe to the SNS Topic
const topicArn = 'arn:aws:sns:us-east-1:123456789:mytopic';
const filterPolicy = {
   "attribute1": ["value1", "value2"],
   "attribute2": "value3"
};
subscribeToTopic(topicArn, filterPolicy);

// Listen to the SNS notifications
export const snsNotificationHandler = async (event: any) => {
   console.log('Received SNS notification.');
   await handleSNSMessage(event);
};

在此示例代码中,我们首先定义了 subscribeToTopic() 函数,该函数将在 SNS Topic 上创建一个订阅并添加筛选策略。然后,我们使用 handleSNSMessage() 函数来处理接收到的消息,该函数检查 MessageAttributes 是否有已知

相关内容

热门资讯

为了进一步!越乡游义乌辅助器安... 为了进一步!越乡游义乌辅助器安全吗,拱趴大菠萝辅助(透视)挂-其实是真的挂1、越乡游义乌辅助器安全吗...
迎来新发展!微信小程序开心十三... 迎来新发展!微信小程序开心十三张脚本,创思维辅助器(透视)神器-原来有挂;1)微信小程序开心十三张脚...
在玩家背景下!中至常熟辅助,中... 在玩家背景下!中至常熟辅助,中至抚州数刀辅助器(透视)器-好像有挂1、首先打开中至抚州数刀辅助器辅助...
针对!新海贝之城辅助怎么设置,... 针对!新海贝之城辅助怎么设置,奇迹陕西辅助(透视)方法-一直存在有挂1)新海贝之城辅助怎么设置辅助插...
据通报!菠萝辅助app,陕西奇... 据通报!菠萝辅助app,陕西奇迹打锅子破解(透视)方法-都是是真的挂1、陕西奇迹打锅子破解公共底牌简...
无独有偶!新九哥辅助,同城游辅... 无独有偶!新九哥辅助,同城游辅助工具(透视)app-果然真的有挂;1、金币登录送、破产送、升级送、活...
据悉!传送屋激k辅助靠谱吗,德... 据悉!传送屋激k辅助靠谱吗,德普之星私人局辅助(透视)脚本-果然真的是有挂1、传送屋激k辅助靠谱吗免...
有玩家发现!小程序雀神雀神智能... 有玩家发现!小程序雀神雀神智能插件,天天川南辅助(透视)工具-好像存在有挂小程序雀神雀神智能插件是不...
据目击者称!朋朋政和软件改牌,... 据目击者称!朋朋政和软件改牌,微信茶馆辅助(透视)方法-切实是真的挂1、用户打开应用后不用登录就可以...
今日!微信茶馆辅助,广西老友玩... 今日!微信茶馆辅助,广西老友玩有破解视频(透视)教程-原来存在有挂进入游戏-大厅左侧-新手福利-激活...