可以在无服务器共享事件中运行吗?

时间:2017-09-08 20:59:05

标签: amazon-web-services amazon-sns amazon-cloudwatch serverless-framework

我想在我们的AWS账户(EC2实例,ELB等)中创建特定资源时创建许多云观察警报

在我的serverless.yml我可以执行以下操作,但最终会创建多个侦听同一事件的cloudwatch规则。

functions:
  createLatencyAlarm:
    handler: createLatencyAlarm.main
    events:
      - cloudwatchEvent:
          event:
            source:
              - "aws.elasticloadbalancing"
            detail-type:
              - "AWS API Call via CloudTrail"
            detail:
              eventSource:
                - "elasticloadbalancing.amazonaws.com"
              eventName:
                - "CreateLoadBalancer"
  createUnhealthHostAlarm:
    handler: createUnhealthyHostAlarm.main
    events:
      - cloudwatchEvent:
          event:
            source:
              - "aws.elasticloadbalancing"
            detail-type:
              - "AWS API Call via CloudTrail"
            detail:
              eventSource:
                - "elasticloadbalancing.amazonaws.com"
              eventName:
                - "CreateLoadBalancer"

我还可以将事件设置为相同的sns主题,但是我必须单独(在无服务器之外)创建一个cloudwatch规则来监听事件并发布到sns主题

functions:
  createLatencyAlarm:
    handler: createLatencyAlarm.main
    events:
      - sns: create-elb
  createUnhealthHostAlarm:
    handler: createUnhealthyHostAlarm.main
    events:
      - sns: create-elb

我可以在serverless.yml事件中设置一个事件来共享功能吗?

1 个答案:

答案 0 :(得分:1)

目前,无服务器为每个云监视器警报创建单独的规则。如果您愿意更改,可以在回购时提交问题。

与此同时,如果您希望只有一个警报,请让一个lambda听一下,然后发布到一个sns主题。