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

使用Pulumi无法在自定义Event Bus创建事件规则问题求助

问题描述

以下是我的Pulumi栈资源代码:

// ...
var eventBus = new Aws.CloudWatch.EventBus("WebhookEventBus", new EventBusArgs()
{
    Name = "WebhookEventBus"
});

var sendToApiRule = new Aws.CloudWatch.EventRule("SendToApi", new EventRuleArgs()
{
    EventBusName = eventBus.Name,
    EventPattern = @"{
        ""source"": [{ ""prefix"": ""xxxx"" }]
    }"
});

var devTarget = new Aws.CloudWatch.EventTarget("DevTarget", new EventTargetArgs()
{
    Rule = sendToApiRule.Name,
    Arn = apiDestination.Arn,
    RoleArn = apiDestinationRole.Arn
});

创建Pulumi栈时触发错误:

creating EventBridge Target (SendToApi-30d74a6-DevTarget-1b917a0): ResourceNotFoundException: Rule SendToApi-30d74a6 does not exist on EventBus default.

CloudTrail日志确认错误来自events.amazonaws.com,关键内容如下:

// ...
"errorCode": "InternalFailure",
"errorMessage": "An unknown error occurred",
"requestParameters": {
    "rule": "SendToApi-8e734a8",
    "eventBusName": "default",
    "targets": [
        {
            "id": "DevTarget-eb8e26d",
            "arn": "xxxx",
            "roleArn": "xxxx"
        }
    ]
},
// ...

我尝试过两种方法但问题依旧:

  • 在EventBusName中直接使用静态字符串"WebhookEventBus"
  • 用.Apply(x => )包装相关资源
问题原因与解决方案
  • 核心原因:创建EventTarget时未指定EventBusName参数,AWS会默认使用default事件总线,但你的EventRule是创建在自定义的WebhookEventBus上的,因此AWS在默认总线中找不到对应规则,抛出资源不存在的错误。

  • 解决方案:在EventTargetArgs中添加EventBusName参数,关联到自定义事件总线。修改后的代码如下:

var devTarget = new Aws.CloudWatch.EventTarget("DevTarget", new EventTargetArgs()
{
    Rule = sendToApiRule.Name,
    Arn = apiDestination.Arn,
    RoleArn = apiDestinationRole.Arn,
    // 新增该行,指定目标事件总线
    EventBusName = eventBus.Name
});

添加后Pulumi创建Target时会明确指向自定义的WebhookEventBus,即可找到对应的规则完成创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:55:28