You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Service Catalog触发EventBridge告警失败问题排查求助

问题描述

尝试通过Terraform配置EventBridge实现Service Catalog(SC)事件触发SNS通知,使用两种事件规则模式并配置了SNS主题策略,但执行SC操作(部署产品、创建投资组合等)后SNS始终未触发,需排查遗漏点。

使用的Terraform配置

模式1:基础事件规则

resource "aws_cloudwatch_event_rule" "servicecatalog_event_rule" {
  name        = "servicecatalog-rule"
  description = "Event rule to trigger SNS topic on Service Catalog events"

  event_pattern = <<EOF
  {
    "source": ["aws.servicecatalog"]
  }
  EOF
}

模式2:基于CloudTrail的API调用事件模式

{
  "source": ["aws.servicecatalog"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["servicecatalog.amazonaws.com"]
  }
}

SNS主题策略

resource "aws_sns_topic_policy" "servicecatalog_topic_policy" {
  arn = aws_sns_topic.servicecatalog_sns_topic.arn

  policy = <<EOF
{
  "Version": "2012-10-17",
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "${aws_sns_topic.servicecatalog_sns_topic.arn}"
    }
  ]
}
EOF
}

EventBridge目标配置

resource "aws_cloudwatch_event_target" "servicecatalog_event_target" {
  rule      = aws_cloudwatch_event_rule.servicecatalog_event_rule.name
  target_id = "servicecatalog_event_target"
  arn       = aws_sns_topic.servicecatalog_sns_topic.arn
}
排查与解决方案

以下是可能的遗漏点及对应解决方法:

  • CloudTrail配置缺失
    Service Catalog的API调用事件依赖CloudTrail推送至EventBridge,需确认:

    1. 当前区域已启用CloudTrail跟踪,且覆盖目标区域或所有区域
    2. CloudTrail跟踪未排除Service Catalog的API事件(默认记录所有服务,需确认无自定义排除规则)
    3. CloudTrail跟踪已开启EventBridge集成功能
  • 事件模式匹配偏差
    两种模式可能存在匹配范围不准确的问题:

    1. 前往EventBridge的「事件总线」页面,查看执行SC操作后是否生成对应事件,将实际事件的detail-type、eventName等字段与你的模式对比
    2. 可在模式中增加detail.eventName过滤条件(如"eventName": ["ProvisionProduct", "CreatePortfolio"]),提升匹配精准度
  • EventBridge规则未启用
    检查aws_cloudwatch_event_rule的is_enabled属性,默认值为true,但如果存在手动禁用或配置错误,需显式声明:

    resource "aws_cloudwatch_event_rule" "servicecatalog_event_rule" {
      # 其他配置项
      is_enabled = true
    }
    
  • 跨区域配置问题
    确保EventBridge规则与SNS主题处于同一AWS区域,跨场景调用需在SNS策略中指定对应区域的events.amazonaws.com服务主体,同区域则无需额外操作。

  • 权限验证
    虽然现有SNS策略逻辑正确,但可通过以下方式验证:

    1. 使用EventBridge的「测试事件」功能,构造符合模式的事件发送至目标SNS,确认是否能收到通知
    2. 查看CloudTrail中的Publish操作日志,排查是否存在权限拒绝记录

内容的提问来源于stack exchange,提问作者Goswami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 22:36:28