【问题标题】:How to set message filtering on AWS SNS subscription using Javascript SDK如何使用 Javascript SDK 在 AWS SNS 订阅上设置消息过滤
【发布时间】:2020-05-01 02:22:21
【问题描述】:

使用 AWS SNS,我想在订阅 sms 端点到主题时设置过滤策略。但我收到此错误:“传送协议 SMS 不支持消息过滤”

我会在这里分享代码...

const AWS = require("aws-sdk")

module.exports.main = async (event) => {
    try {
      const sns = new AWS.SNS()
      const requestBody = event;
      var params = {
        Protocol: 'SMS', /* required */
        TopicArn: 'arn:aws:sns:us-east-1:XXXXXXXX:notification_system', /* required */
        Endpoint: requestBody.phoneNumber,
        Attributes: {
          "FilterPolicy": "{\`number`: [\`Filter1\`]}"
        }
      };
      var subscribePromise = await sns.subscribe(params).promise();

我不确定为什么会收到此错误。我检查了我可以在 AWS 控制台上设置过滤策略,但不能在 sdk 上设置。请帮我找出解决方案。谢谢

【问题讨论】:

  • 不确定Protocol 字段是否区分大小写。您可以尝试更改为“短信”吗?

标签: amazon-web-services aws-sdk amazon-sns serverless-framework


【解决方案1】:

对不起,我找到了解决办法。协议参数应该是小写的“sms”。代码应该是这样的。

const AWS = require("aws-sdk")

module.exports.main = async (event) => {
    try {
      const sns = new AWS.SNS()
      const requestBody = event;
      var params = {
        Protocol: 'sms', /* required */
        TopicArn: 'arn:aws:sns:us-east-1:XXXXXXXX:notification_system', /* required */
        Endpoint: requestBody.phoneNumber,
        Attributes: {
          "FilterPolicy": "{\`number`: [\`Filter1\`]}"
        }
      };
      var subscribePromise = await sns.subscribe(params).promise();

【讨论】:

    猜你喜欢
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    相关资源
    最近更新 更多