在参数中发现意外的关键字'FilterPolicy'。

问题描述 投票:0回答:1

https:/docs.aws.amazon.comAWSJavaScriptSDKlatestAWSSNS.html。 列出了你可以在属性中添加FilterPolicy,但当我这样做时,我得到的是。

index.js:1 UnexpectedParameter: Unexpected key 'FilterPolicy' found in params
at ParamValidator.fail (http://localhost:3000/static/js/1.chunk.js:238942:37)
at ParamValidator.validateStructure (http://localhost:3000/static/js/1.chunk.js:238969:14)
at ParamValidator.validateMember (http://localhost:3000/static/js/1.chunk.js:238978:21)
at ParamValidator.validate (http://localhost:3000/static/js/1.chunk.js:238926:10)
at Request.VALIDATE_PARAMETERS (http://localhost:3000/static/js/1.chunk.js:237086:42)
at Request.callListeners (http://localhost:3000/static/js/1.chunk.js:242603:20)
at callNextListener (http://localhost:3000/static/js/1.chunk.js:242590:12)
at http://localhost:3000/static/js/1.chunk.js:237039:9
at finish (http://localhost:3000/static/js/1.chunk.js:232861:7)
at getStaticCredentials (http://localhost:3000/static/js/1.chunk.js:232890:7)
  static async AddAlert(devEui, protocol, endpoint)
  {
    var params = {
      Protocol: protocol, /* required */
      TopicArn: 'arn:aws:sns:us-east-1:123456789:Alert', /* required */
      FilterPolicy: {
        "dev_eui": [
          devEui
        ]
      },
      Endpoint: endpoint,
      ReturnSubscriptionArn: true 
    };

    var promise = new AWS.SNS({apiVersion: '2010-03-31'})
    .subscribe(params).promise()
    .catch(
      function(err) {
        console.error(err, err.stack);
        throw err;
      })
    return promise;
  }
javascript amazon-web-services amazon-sns
1个回答
0
投票

我不得不按照Jarmon的评论把Filter Policy放在Attributes下。

static async AddAlert(devEui, protocol, endpoint)
  {
    var params = {
      Protocol: protocol, /* required */
      TopicArn: 'arn:aws:sns:us-east-1:123456789:Alert', /* required */
      Attributes: FilterPolicy: JSON.stringify({
        "dev_eui": [
          devEui
        ]
      }),
      Endpoint: endpoint,
      ReturnSubscriptionArn: true 
    };

    var promise = new AWS.SNS({apiVersion: '2010-03-31'})
    .subscribe(params).promise()
    .catch(
      function(err) {
        console.error(err, err.stack);
        throw err;
      })
    return promise;
  }
© www.soinside.com 2019 - 2024. All rights reserved.