/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠRichard ĠH aus wal d Ġ- Ġhttps :// quantum maid . de /. Ċ Ġ* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ċ Ġ* Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ċ Ġ* Ġwith Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ċ Ġ* Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ċ Ġ* Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY Ċ Ġ* ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ċ Ġ* Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ċ Ġ* Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġde . quantum maid . gra al v ml amb dar untime Ċ Ċ import Ġde . quantum maid . gra al v ml amb dar untime . http . Lambda Invocation Endpoint Sdk Client Utils Ċ import Ġde . quantum maid . gra al v ml amb dar untime . util . Performance Metrics Ċ import Ġde . quantum maid . gra al v ml amb dar untime . util . Structural Logger Ċ import Ġmu . Kotlin Logging Ċ import Ġjava . net . URL Ċ Ċ private Ġval Ġbase Logger Ġ= ĠKotlin Logging . logger Ġ{ Ġ} Ċ Ċ /** Ċ Ġ* ĠDo Ġnot Ġuse Ġa Ġread Ġtimeout Ġon Ġthe ĠGET Ġcall Ġ( set Ġto Ġ- 0 ). Ċ Ġ* ĠBet ween Ġwhen ĠLambda Ġbootstrap s Ġthe Ġruntime Ġand Ġwhen Ġthe Ġruntime Ġhas Ġan Ċ Ġ* Ġevent Ġto Ġreturn , Ġthe Ġruntime Ġprocess Ġmay Ġbe Ġfrozen Ġfor Ġseveral Ġseconds . Ċ Ġ*/ Ċ class ĠNext Invocation Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnext Invocation ( url : ĠURL , Ġmetrics : ĠPerformance Metrics , Ġlogger : ĠStructural Logger ): ĠInvocation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmetrics . add Metric (" Retrieve Next Invocation ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLambda Invocation Endpoint Sdk Client Utils . do Http Call ( url , Ġ" GET ", Ġ 0 , Ġmetrics , Ġlogger ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda Runtime Aws RequestId Ġ= Ġresult . first HeaderValue (" Lambda - Runtime - Aws - Request - Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġresult . first HeaderValue (" Content - Type ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug Log Map ( base Logger ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" message " Ġto Ġ" Received Ġnext Ġinvocation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" lambda Runtime Aws RequestId " Ġto Ġlambda Runtime Aws RequestId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" contentType " Ġto ĠcontentType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" payload " Ġto Ġresult . normal Response Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInvocation ( lambda Runtime Aws RequestId , ĠcontentType , Ġresult . normal Response Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠInvocation ( ĊĠĠĠ Ġval Ġlambda Runtime Aws RequestId : ĠString , ĊĠĠĠ Ġval ĠcontentType : ĠString ?, ĊĠĠĠ Ġval Ġpayload : ĠString ? Ċ ) Ċ