zotregistry.dev/zot@v1.4.4-0.20240314164342-eec277e14d20/pkg/meta/dynamodb/parameters.go (about) 1 package dynamodb 2 3 import ( 4 "context" 5 6 "github.com/aws/aws-sdk-go-v2/aws" 7 "github.com/aws/aws-sdk-go-v2/config" 8 "github.com/aws/aws-sdk-go-v2/service/dynamodb" 9 ) 10 11 type DBDriverParameters struct { 12 Endpoint, Region, RepoMetaTablename, RepoBlobsInfoTablename, ImageMetaTablename, 13 UserDataTablename, APIKeyTablename, VersionTablename string 14 } 15 16 func GetDynamoClient(params DBDriverParameters) (*dynamodb.Client, error) { 17 customResolver := aws.EndpointResolverWithOptionsFunc( 18 func(service, region string, options ...interface{}) (aws.Endpoint, error) { 19 return aws.Endpoint{ 20 PartitionID: "aws", 21 URL: params.Endpoint, 22 SigningRegion: region, 23 }, nil 24 }) 25 26 // Using the SDK's default configuration, loading additional config 27 // and credentials values from the environment variables, shared 28 // credentials, and shared configuration files 29 cfg, err := config.LoadDefaultConfig(context.Background(), config.WithRegion(params.Region), 30 config.WithEndpointResolverWithOptions(customResolver)) 31 if err != nil { 32 return nil, err 33 } 34 35 return dynamodb.NewFromConfig(cfg), nil 36 }