AmazonEventBridgeClient.PutEventsAsync返回OK,但指定事件总线不存在
EventBus 相关问题解答
为什么PutEventsAsync返回OK却没提示总线不存在?
这是EventBridge PutEvents API的设计特性:当指定的事件总线不存在时,API不会返回HTTP错误状态码,而是把错误信息放在响应结果的条目详情里。你需要解析返回的PutEventsResponse中的Entries数组,每个条目会包含ErrorCode和ErrorMessage字段——如果总线不存在,这里会返回ResourceNotFoundException错误码及对应描述。
有没有API可以验证事件总线是否存在?
有的,用DescribeEventBus API就能直接验证。如果目标事件总线不存在,这个API会直接抛出ResourceNotFoundException异常(或返回对应的错误响应)。
代码示例(C#)
检查PutEvents的响应错误
var response = await client.PutEventsAsync(request); foreach (var entryResult in response.Entries) { if (!string.IsNullOrEmpty(entryResult.ErrorCode)) { // 处理错误,比如总线不存在的情况 Console.WriteLine($"错误代码:{entryResult.ErrorCode},描述:{entryResult.ErrorMessage}"); } }
使用DescribeEventBus验证总线存在性
try { var describeReq = new DescribeEventBusRequest { Name = "你的事件总线名称" }; await client.DescribeEventBusAsync(describeReq); // 走到这一步说明总线存在 } catch (AmazonEventBridgeException ex) { if (ex.ErrorCode == "ResourceNotFoundException") { // 总线不存在的处理逻辑 } }
内容的提问来源于stack exchange,提问作者printing activities
相关产品推荐
相关产品推荐

