可以使用AWS SDK for Java中的AmazonEventBridgeClient类来实现发布到AWS事件总线。然而,该类在向不存在的事件总线发布时不会抛出异常或错误。为了避免这种情况,可以在发布消息时使用try-catch块来捕获异常,或者在发布消息之前通过AmazonEventBridgeClient的describeEventBus()方法检查事件总线是否存在。
示例代码:
//初始化AmazonEventBridgeClient AmazonEventBridgeClient eventBridgeClient = AmazonEventBridgeClient.builder() .withRegion(Regions.US_WEST_2) .build();
//检查事件总线是否存在 String eventBusArn = "XXXX"; try { DescribeEventBusRequest describeRequest = new DescribeEventBusRequest() .withName(eventBusArn); DescribeEventBusResult result = eventBridgeClient.describeEventBus(describeRequest); System.out.println("The event bus " + eventBusArn + " exists."); } catch (ResourceNotFoundException e) { System.out.println("The event bus " + eventBusArn + " does not exist."); }
//向事件总线发布消息 String eventBusName = "my-event-bus"; PutEventsRequest request = new PutEventsRequest() .withEntries(new PutEventsRequestEntry() .withDetail("{}") .withDetailType("myDetailType") .withSource("aws.mySource") .withEventBusName(eventBusName)); try { eventBridgeClient.putEvents(request); System.out.println("Event published to " + eventBusName); } catch (ResourceNotFoundException e) { System.out.println("Failed to publish event to " + eventBusName + ": event bus does not exist."); }
上一篇:Aws事件总线Java客户端在向不存在的事件总线发布消息时不会抛出错误
下一篇:AWS事件总线PutEvent限制错误:调用PutEvents操作时发生ValidationException错误