创建订阅后,无服务器SNS filterPolicy不会放置过滤器

时间:2018-11-12 20:06:27

标签: amazon-sns serverless aws-serverless

我正在使用以下函数定义:

missing:
    handler: functions/eeegMissing.handler
    events:
      - sns: arn:aws:sns:us-west-2:xxx
        filterPolicy:
              type:
                - EPILOG_PAGE_DATA_RECEIVED

SNS主题已存在。当我部署它时,将创建一个名称为

的订阅
arn:aws:lambda:us-west-2:xxx:function:eeeg-dev-missing` 

,但过滤器为空白。我希望过滤器显示为:

{ "type":["EPILOG_PAGE_DATA_RECEIVED"]}

我想念什么?

2 个答案:

答案 0 :(得分:2)

您只有一个小语法错误。我具有以下事件的无服务器功能,并且可以正常工作:

events:
- sns: 
    arn: ${self:custom.devicesTopicArn}
    filterPolicy:
      operation:
      - INSERT

因此,您的情况应该是:

missing:
  handler: functions/eeegMissing.handler
  events:
    - sns:
        arn: arn:aws:sns:us-west-2:xxx
        filterPolicy:
          type:
            - EPILOG_PAGE_DATA_RECEIVED

答案 1 :(得分:0)

要澄清每个the Serverless docs的先前答案,当通过arn(相对于名称)指定主题时,arn值必须包含arn:关键字(除了arn:前缀之外)包含在AWS资源名称中。)