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

使用Terraform在非默认Event Bridge总线创建规则异常问题

问题原因与解决方案

问题出在aws_cloudwatch_event_rule资源的event_bus_name参数取值错误:该字段需要传入Event Bridge总线的名称,而非ARN。你当前使用了总线的ARN,Terraform无法匹配到对应的自定义总线,因此默认将规则部署到了default总线。

修正后的代码

将event_bus_name的值从aws_cloudwatch_event_bus.event_bridge_bus.arn改为aws_cloudwatch_event_bus.event_bridge_bus.name即可:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">= 5.31.0"
    }
  }
}

resource "aws_cloudwatch_event_bus" "event_bridge_bus" {
    name = "my-event-bridge-bus2"
}

# Event Rule to capture events from S3 bucket
resource "aws_cloudwatch_event_rule" "event_rule" {
    depends_on = [aws_cloudwatch_event_bus.event_bridge_bus]
    name        = "my-event-rule"
    description = "Event rule for capturing events from S3 bucket"
    # 改为总线名称而非ARN
    event_bus_name = aws_cloudwatch_event_bus.event_bridge_bus.name

    event_pattern = <<PATTERN
{
    "source": ["aws.s3"],
    "detail-type": ["AWS API Call via CloudTrail"],
    "detail": {
        "eventSource": ["s3.amazonaws.com"],
        "eventName": ["PutObject", "DeleteObject"]
    }
}
PATTERN
}

验证方法

执行terraform apply后,可通过AWS控制台或AWS CLI命令确认规则归属:

  • CLI命令:aws events describe-rule --name my-event-rule --event-bus-name my-event-bridge-bus2
  • 返回结果中若EventBusName字段为my-event-bridge-bus2,则说明规则已正确部署到自定义总线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:32:45