首页 > 解决方案 > 无服务器 SNS filterPolicy 在创建订阅时未放置过滤器

问题描述

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

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"]}

我错过了什么?

标签: amazon-snsserverlessaws-serverless

解决方案


你只是有一个小的语法错误。我有一个带有以下事件的无服务器函数,它可以工作:

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

推荐阅读