@@ -466,7 +466,9 @@ public final long getRemainingTimeInMillis() {
466
466
request .setRequestCredentialsProvider (v1CredentialsProvider );
467
467
468
468
try {
469
- return requestFunction .apply (request );
469
+ ResultT respose = requestFunction .apply (request );
470
+ logRequestMetadata (request , respose );
471
+ return respose ;
470
472
} catch (final Throwable e ) {
471
473
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
472
474
throw e ;
@@ -486,7 +488,9 @@ public final long getRemainingTimeInMillis() {
486
488
RequestT wrappedRequest = (RequestT ) request .toBuilder ().overrideConfiguration (overrideConfiguration ).build ();
487
489
488
490
try {
489
- return requestFunction .apply (wrappedRequest );
491
+ ResultT response = requestFunction .apply (wrappedRequest );
492
+ logRequestMetadataV2 (request , response );
493
+ return response ;
490
494
} catch (final Throwable e ) {
491
495
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
492
496
throw e ;
@@ -505,7 +509,11 @@ public final long getRemainingTimeInMillis() {
505
509
RequestT wrappedRequest = (RequestT ) request .toBuilder ().overrideConfiguration (overrideConfiguration ).build ();
506
510
507
511
try {
508
- return requestFunction .apply (wrappedRequest );
512
+ CompletableFuture <ResultT > response = requestFunction .apply (wrappedRequest ).thenApplyAsync (resultT -> {
513
+ logRequestMetadataV2 (request , resultT );
514
+ return resultT ;
515
+ });
516
+ return response ;
509
517
} catch (final Throwable e ) {
510
518
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
511
519
throw e ;
@@ -523,7 +531,9 @@ public final long getRemainingTimeInMillis() {
523
531
RequestT wrappedRequest = (RequestT ) request .toBuilder ().overrideConfiguration (overrideConfiguration ).build ();
524
532
525
533
try {
526
- return requestFunction .apply (wrappedRequest );
534
+ IterableT response = requestFunction .apply (wrappedRequest );
535
+ response .forEach (r -> logRequestMetadataV2 (request , r ));
536
+ return response ;
527
537
} catch (final Throwable e ) {
528
538
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
529
539
throw e ;
@@ -542,7 +552,9 @@ public final long getRemainingTimeInMillis() {
542
552
RequestT wrappedRequest = (RequestT ) request .toBuilder ().overrideConfiguration (overrideConfiguration ).build ();
543
553
544
554
try {
545
- return requestFunction .apply (wrappedRequest );
555
+ ResponseInputStream <ResultT > response = requestFunction .apply (wrappedRequest );
556
+ logRequestMetadataV2 (request , response .response ());
557
+ return response ;
546
558
} catch (final Throwable e ) {
547
559
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
548
560
throw e ;
@@ -561,7 +573,9 @@ public final long getRemainingTimeInMillis() {
561
573
RequestT wrappedRequest = (RequestT ) request .toBuilder ().overrideConfiguration (overrideConfiguration ).build ();
562
574
563
575
try {
564
- return requestFunction .apply (wrappedRequest );
576
+ ResponseBytes <ResultT > response = requestFunction .apply (wrappedRequest );
577
+ logRequestMetadataV2 (request , response .response ());
578
+ return response ;
565
579
} catch (final Throwable e ) {
566
580
loggerProxy .log (String .format ("Failed to execute remote function: {%s}" , e .getMessage ()));
567
581
throw e ;
@@ -623,4 +637,33 @@ public final long getRemainingTimeInMillis() {
623
637
return ProgressEvent .failed (model , context , HandlerErrorCode .InternalFailure , e .getMessage ());
624
638
625
639
}
640
+
641
+ private <RequestT extends AmazonWebServiceRequest , ResultT extends AmazonWebServiceResult <ResponseMetadata >>
642
+ void
643
+ logRequestMetadata (final RequestT request , final ResultT response ) {
644
+ try {
645
+ String requestName = request .getClass ().getSimpleName ();
646
+ String requestId = (response == null || response .getSdkResponseMetadata () == null )
647
+ ? ""
648
+ : response .getSdkResponseMetadata ().getRequestId ();
649
+ loggerProxy
650
+ .log (String .format ("{\" apiRequest\" : {\" requestId\" : \" %s\" , \" requestName\" : \" %s\" }}" , requestId , requestName ));
651
+ } catch (final Exception e ) {
652
+ loggerProxy .log (e .getMessage ());
653
+ }
654
+ }
655
+
656
+ private <RequestT extends AwsRequest , ResultT extends AwsResponse > void logRequestMetadataV2 (final RequestT request ,
657
+ final ResultT response ) {
658
+ try {
659
+ String requestName = request .getClass ().getSimpleName ();
660
+ String requestId = (response == null || response .responseMetadata () == null )
661
+ ? ""
662
+ : response .responseMetadata ().requestId ();
663
+ loggerProxy
664
+ .log (String .format ("{\" apiRequest\" : {\" requestId\" : \" %s\" , \" requestName\" : \" %s\" }}" , requestId , requestName ));
665
+ } catch (final Exception e ) {
666
+ loggerProxy .log (e .getMessage ());
667
+ }
668
+ }
626
669
}
0 commit comments