@@ -3,6 +3,7 @@ package events
33import (
44 "encoding/json"
55 "fmt"
6+ "sync"
67
78 "github.com/localstack/lambda-runtime-init/internal/localstack"
89
@@ -14,7 +15,9 @@ import (
1415// TODO: Logs should all be collected here
1516type LocalStackEventsAPI struct {
1617 interop.EventsAPI
17- adapter * localstack.LocalStackClient
18+ adapter * localstack.LocalStackClient
19+ requestID string
20+ mu sync.RWMutex
1821}
1922
2023func NewLocalStackEventsAPI (adapter * localstack.LocalStackClient ) * LocalStackEventsAPI {
@@ -28,8 +31,15 @@ func (ev *LocalStackEventsAPI) SendFault(data interop.FaultData) error {
2831 // We can ignore whatever errors are returned here
2932 _ = ev .EventsAPI .SendFault (data )
3033
34+ requestID := string (data .RequestID )
35+ if data .RequestID == "" {
36+ ev .mu .RLock ()
37+ requestID = ev .requestID
38+ ev .mu .RUnlock ()
39+ }
40+
3141 resp := localstack.ErrorResponse {
32- ErrorMessage : fmt .Sprintf ("RequestId: %s Error: %s" , data . RequestID , data .ErrorMessage ),
42+ ErrorMessage : fmt .Sprintf ("RequestId: %s Error: %s" , requestID , data .ErrorMessage ),
3343 ErrorType : string (data .ErrorType ),
3444 }
3545
@@ -40,3 +50,9 @@ func (ev *LocalStackEventsAPI) SendFault(data interop.FaultData) error {
4050
4151 return ev .adapter .SendStatus (localstack .Error , payload )
4252}
53+
54+ func (ev * LocalStackEventsAPI ) SetCurrentRequestID (id interop.RequestID ) {
55+ ev .mu .Lock ()
56+ defer ev .mu .Unlock ()
57+ ev .requestID = string (id )
58+ }
0 commit comments