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

TypeScript调用AWS SDK v3 EventBridge时Name参数校验失败如何解决

问题核心原因
  • 你调用了错误的API命令:ActivateEventSourceCommand是专门用于激活AWS合作伙伴事件源的接口,它要求传入的Name参数必须是符合aws.partner(/[.-_A-Za-z0-9]+){2,}格式的合作伙伴事件源标识,你传入的自定义名称TestBus不满足格式要求,因此触发校验报错。
  • 你的代码逻辑是要向EventBridge投递自定义事件,完全不需要调用这个接口,应该使用PutEventsCommand完成事件投递。
修正后的代码示例
import { EventBridgeClient, PutEventsCommand } from "@aws-sdk/client-eventbridge";

const client = new EventBridgeClient({ region: process.env.AWS_REGION });

// 此处为发送的BODY内容
const dataToSend = {
  email_address: user_email,
  status: action,
  merge_fields: {
        FNAME: user_givenName,
        LNAME: user_familyName,
  },
  interests: interestId,
};

// PutEventsCommand 直接接收Entries数组作为参数
const params = {
  Entries: [
    {
      EventBusName: "Subscriptions", // 这里填你实际的事件总线名称即可
      Source: "custom.subscriptions",
      DetailType: "subscription",
      Detail: JSON.stringify(dataToSend),
    },
  ],
};

const command = new PutEventsCommand(params);

try {
  const data = await client.send(command);
  // 处理返回数据
  console.log("data>>", data);
} catch (error) {
  // 错误处理
  console.log("err>>", error);
}
补充说明

如果你的需求是先创建自定义事件总线,应该调用CreateEventBusCommand,传入的Name参数支持自定义字符串,不需要满足合作伙伴事件源的格式规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:39:02