Skip to content

Commit f9dfa34

Browse files
committed
perf(aws): aws signer has cache and can be reused
1 parent ea78971 commit f9dfa34

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

pkg/roundtripper/roundtripper.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ type AWSSigningTransport struct {
4040
creds aws.CredentialsProvider
4141
region string
4242
log log.Logger
43+
signer *v4.Signer
4344
}
4445

4546
func NewAWSSigningTransport(transport http.RoundTripper, region string, roleArn string, log log.Logger) (*AWSSigningTransport, error) {
@@ -67,11 +68,11 @@ func NewAWSSigningTransport(transport http.RoundTripper, region string, roleArn
6768
region: region,
6869
creds: creds,
6970
log: log,
71+
signer: v4.NewSigner(),
7072
}, err
7173
}
7274

7375
func (a *AWSSigningTransport) RoundTrip(req *http.Request) (*http.Response, error) {
74-
signer := v4.NewSigner()
7576
payloadHash, newReader, err := hashPayload(req.Body)
7677
if err != nil {
7778
level.Error(a.log).Log("msg", "failed to hash request body", "err", err)
@@ -85,7 +86,7 @@ func (a *AWSSigningTransport) RoundTrip(req *http.Request) (*http.Response, erro
8586
return nil, err
8687
}
8788

88-
err = signer.SignHTTP(context.Background(), creds, req, payloadHash, service, a.region, time.Now())
89+
err = a.signer.SignHTTP(context.Background(), creds, req, payloadHash, service, a.region, time.Now())
8990
if err != nil {
9091
level.Error(a.log).Log("msg", "failed to sign request body", "err", err)
9192
return nil, err

0 commit comments

Comments
 (0)