amazon-web-services - 如何通过 EventBridgeClient 使用对 AWS SDK for Java V2 的 X-Ray 支持
问题描述
根据此处的文档,它只是添加了一个 Maven 模块aws-xray-recorder-sdk-aws-sdk-v2
。然后,个人客户将能够使用TracingInterceptor
.
我确实在我的 pom.xml 中添加了sdk-core
和,但sdk-v2
我EventBridgeClient
没有显示添加.addExecutionInterceptor
TracingInterceptor
添加了依赖项。
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-aws-sdk-v2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-core</artifactId>
<version>2.8.0</version>
</dependency>
事件桥客户端
return EventBridgeClient.builder()
.region(Region.of(System.getenv("AWS_REGION")))
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
.overrideConfiguration(
ClientOverrideConfiguration.builder()
.apiCallAttemptTimeout(Duration.ofSeconds(1))
.retryPolicy(RetryPolicy.builder().numRetries(10).build())
.build())
.httpClientBuilder(UrlConnectionHttpClient.builder())
.build();
解决方案
addExecutionInterceptor ()方法不属于EventBridgeClient服务客户端。它属于ClientOverrideConfiguration对象,然后在我们创建EventBridgeClient服务客户端时使用。这是Java代码:
package com.example.xray;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest;
import software.amazon.awssdk.services.eventbridge.model.PutRuleResponse;
import software.amazon.awssdk.services.eventbridge.model.EventBridgeException;
import com.amazonaws.xray.interceptors.TracingInterceptor;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
public class EventClientExample {
public static void main(String[] args) {
ClientOverrideConfiguration conf= ClientOverrideConfiguration.builder()
.addExecutionInterceptor(new TracingInterceptor())
.build();
Region region = Region.US_WEST_2;
EventBridgeClient eventBrClient = EventBridgeClient.builder()
.region(region)
.overrideConfiguration(conf)
.build();
eventBrClient.close();
}
}
POM 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>XRayProjectV2</groupId>
<artifactId>XRayProjectV2</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.15.14</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>eventbridge</artifactId>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>xray</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-aws-sdk-v2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-core</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
</project>
推荐阅读
- android - Firebase 消息依赖问题
- java - io.github.bonigarcia.wdm.WebDriverManagerException: java.nio.file.AccessDeniedException
- c++ - 如何防止正交区域转换以进行错误处理
- mysql - 如何通过比较 MySQL Workbench 中的日期进行过滤
- laravel - 具有双变形关系的 Laravel 命名约定
- sql - 替换不删除正确的字符
- angular - 如何防止下拉列表中先前选择的值被清除?我在 FormArray 中使用 MatSelectSearch
- jmeter - 如何在 jmeter 的 JSR223 预处理器中使用变量
- c# - 将 ByValTStr 编组为 UTF8
- python - 使用 Python 和 matplotlib 在二维数据上拟合椭圆