@@ -19,6 +19,7 @@ import (
1919 "sync"
2020
2121 "github.com/aws/aws-sdk-go-v2/aws"
22+ awsv2config "github.com/aws/aws-sdk-go-v2/config"
2223 v2creds "github.com/aws/aws-sdk-go-v2/credentials"
2324 "github.com/aws/aws-sdk-go/aws/credentials"
2425 "github.com/aws/aws-sdk-go/aws/session"
@@ -199,10 +200,19 @@ func (c *KinesisClients) WorkerCfg(ctx context.Context, stream, region, mode, ap
199200 const sharedMode = "shared"
200201 if c .Kinesis != nil {
201202 if mode == sharedMode {
202- v1Creds , err := c .Credentials .Get ()
203- if err != nil {
203+ // Try v2 default config first (standard approach for v2 components)
204+ v2Config , err := awsv2config .LoadDefaultConfig (ctx , awsv2config .WithRegion (region ))
205+ if err == nil {
206+ kclConfig := config .NewKinesisClientLibConfigWithCredential (applicationName , stream , region , "" , v2Config .Credentials )
207+ return kclConfig
208+ }
209+ // Fallback to v1 credentials if v2 fails
210+ v1Creds , v1Err := c .Credentials .Get ()
211+ if v1Err != nil {
212+ // Both v2 and v1 failed, return nil
204213 return nil
205214 }
215+ // Convert v1 credentials to v2 format
206216 v2Creds := v2creds .NewStaticCredentialsProvider (v1Creds .AccessKeyID , v1Creds .SecretAccessKey , v1Creds .SessionToken )
207217 kclConfig := config .NewKinesisClientLibConfigWithCredential (applicationName , stream , region , "" , v2Creds )
208218 return kclConfig
0 commit comments