小编Jus*_*ell的帖子

如何使用AWS X-Ray通过SQS队列跟踪请求

我正在尝试通过AWS Lambda函数启动并运行一个玩具示例f,该函数由一个SQS队列上的消息触发,然后sqs发布到另一个队列sqs',然后由一个工作程序f'读取sqs'并处理该消息,其中整个“ X射线追踪“请求”。

sqs -> f -> sqs' -> f'

目前,我已经准备好队列,并从队列中写入和接收函数。我也有X射线跟踪从第一个函数f到sqs队列的请求。

我当前的挑战是:如何将跟踪信息传播给最终工作人员,以便可以在X射线中看到整个过程。


这是我当前的功能:

public class Hello implements RequestHandler<SQSEvent, Void> {
    String OUTPUT_QUEUE_URL = "...";

    private AmazonSQS sqs = AmazonSQSClientBuilder.standard()
        .withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()))
        .build();

    public Void handleRequest(SQSEvent event, Context context)
    {
        for(SQSMessage msg : event.getRecords()){
            System.out.println(new String(msg.getBody()));
        }

        SendMessageRequest send_msg_request = new SendMessageRequest()
            .withQueueUrl(OUTPUT_QUEUE_URL)
            .withMessageBody("hello world")
            .withDelaySeconds(5);
        sqs.sendMessage(send_msg_request);
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)
public class World implements RequestHandler<SQSEvent, Void>{
    public …
Run Code Online (Sandbox Code Playgroud)

java amazon-sqs amazon-web-services aws-lambda

13
推荐指数
2
解决办法
775
查看次数