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、不需要AI权限,帮助你快...
辅助一下!道游互娱辅助,填大坑... 辅助一下!道游互娱辅助,填大坑辅助器视频,其实是真的有挂(哔哩哔哩)一、填大坑辅助器视频可以开透视的...
必备一下!潮娱乐鱼虾蟹公式辅助... 您好,潮娱乐鱼虾蟹公式辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
总结一下!圣游科技,博雅红河西... 总结一下!圣游科技,博雅红河西元红河挂,确实真的是有挂(哔哩哔哩)1、许多玩家不知道博雅红河西元红河...
分享一下!福建微乐小程序修改器... 分享一下!福建微乐小程序修改器,大懒人斗十四辅助,其实真的有挂(哔哩哔哩)小薇(辅助器软件下载)致您...
解迷一下!天天贵阳游戏辅助,衢... 解迷一下!天天贵阳游戏辅助,衢州都莱罗松辅助器,都是是真的有挂(哔哩哔哩)1、天天贵阳游戏辅助模拟器...
教你一下!青橙竞技游戏辅助,决... 教你一下!青橙竞技游戏辅助,决战卡五星辅助器,都是有挂(哔哩哔哩)亲,关键说明,青橙竞技游戏辅助透视...
普及一下!微信卡五星辅助器,海... 普及一下!微信卡五星辅助器,海盗来了大白辅助,都是是有挂(哔哩哔哩)1、在微信卡五星辅助器插件功能辅...