1

我正在编写一个将在 ec2 中运行并为我的帐户列出 s3 中的存储桶的代码。代码运行良好。但是,当我尝试将 X 射线检测到其中时,X 射线痕迹不会出现。我在 pom.xml 中包含了 X 射线依赖项

我尝试了许多方法,例如引入 Config,但没有奏效。

有示例代码的人会有所帮助,因为关于它的资源并不多,AWS 官方示例项目也不是很清楚。

@Configuration
public class WebConfig {

    @Bean
    public Filter TracingFilter() {
        return new AWSXRayServletFilter(new DynamicSegmentNamingStrategy("MyApp", "*"));
    }
}


@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() throws IOException{
        test();
        return "Greetings from Spring Boot!";
    }

    public static void test() throws IOException {
        final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
        List<Bucket> buckets = s3.listBuckets();
        System.out.println("Your Amazon S3 buckets are:");
        for (Bucket b : buckets) {
            System.out.println("* " + b.getName());
        }
    }
}

得到以下异常

2019-04-27 10:46:28.706 错误 3865 --- [pool-1-thread-1] caxssampling.pollers.RulePoller:遇到错误轮询 GetSamplingRules:

com.amazonaws.SdkClientException:无法执行 HTTP 请求:连接到 127.0.0.1:2000 [/127.0.0.1] 失败:com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:第1163章~[aws-java-sdk-core-1.11.430.jar!

4

1 回答 1

1

com.amazonaws.SdkClientException:无法执行 HTTP 请求:连接到 127.0.0.1:2000

看起来 X-Ray 守护程序没有在运行您的应用程序的 EC2 实例上运行。

您在 EC2 上的应用程序 --> EC2 上的 X-Ray 守护程序 --> AWS X-Ray API

在您的应用程序之前先尝试启动 X-Ray 守护程序(侦听默认 2000 端口)并查看日志正在传播。

https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ec2.html

于 2019-04-27T14:55:54.297 回答